博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UTF8转unicode说明
阅读量:6912 次
发布时间:2019-06-27

本文共 1647 字,大约阅读时间需要 5 分钟。

1、最新版iconv中的char *encTo = "UNICODE//IGNORE"; 是没有这个字符串的,它里面有UNICODELITTLE 和 UNICODEBIG 而且是没有开头表征大小端的两字节的。

2、转换代码如下:

1 bool utf8_to_unicode(char *inbuf, size_t *inlen, char *outbuf, size_t *outlen) 2 { 3  4   /* 目的编码, TRANSLIT:遇到无法转换的字符就找相近字符替换 5    *           IGNORE :遇到无法转换字符跳过*/ 6   char *encTo = "UNICODELITTLE"; 7   //char *encTo = "gb2312"; 8   //char *encTo = "UNICODE"; 9   /* 源编码 */10   char *encFrom = "UTF-8";11   //char *encFrom = "utf-8";12 13   /* 获得转换句柄14    *@param encTo 目标编码方式15    *@param encFrom 源编码方式16    *17    * */18   iconv_t cd = iconv_open (encTo, encFrom);19   if (cd == (iconv_t)-1)20   {21       perror ("iconv_open");22   }23 24   /* 需要转换的字符串 */25   //DBG_PRINT("inbuf=%s\n", inbuf);26 27   /* 打印需要转换的字符串的长度 */28   //DBG_PRINT("inlen=%d\n", *inlen);29 30   /* 由于iconv()函数会修改指针,所以要保存源指针 */31   char *tmpin = inbuf;32   char *tmpout = outbuf;33   //size_t insize = *inlen;34   size_t outsize = *outlen;35 36   /* 进行转换37    *@param cd iconv_open()产生的句柄38    *@param srcstart 需要转换的字符串39    *@param inlen 存放还有多少字符没有转换40    *@param tempoutbuf 存放转换后的字符串41    *@param outlen 存放转换后,tempoutbuf剩余的空间42    *43    * */44   size_t ret = iconv(cd, &tmpin, inlen, &tmpout, outlen);45   if (ret == -1)46   {47      perror ("iconv");48   }49 50   /* 存放转换后的字符串 */51   //DBG_PRINT("outbuf=%s\n", outbuf);52 53   //存放转换后outbuf剩余的空间54   //DBG_PRINT("outlen=%d\n", *outlen);55 56   int i = 0;57 58   for (i=0; i<(outsize- (*outlen)); i++)59   {60      ////DBG_PRINT("%2c", outbuf[i]);61      //DBG_PRINT("%x\n", outbuf[i]);62   }63 64   /* 关闭句柄 */65   iconv_close (cd);66 67   return 0;68 }

 

转载于:https://www.cnblogs.com/fdd566/p/6543925.html

你可能感兴趣的文章
2015年毕业生收到的offer和薪资透露
查看>>
新手老手都离不开八大开发工具
查看>>
Ubuntu下用命令行快速打开各类型文件(转)
查看>>
C语言程序设计_zju——第3周编程练习1_时间换算
查看>>
Nodejs调用Aras Innovator服务,处理AML并返回AML
查看>>
纯数学教程 Page 324 正项级数绝对收敛的一种判别法
查看>>
解析函數論 Page 29 命題(1) 有界閉集上的一致連續性
查看>>
oracle 两个timstamp类型相减获取时间差
查看>>
简单工厂设计模式-模拟磁盘打开文件
查看>>
C#实体类get和set的作用
查看>>
表单验证<AngularJs>
查看>>
18.os模块获取url后缀
查看>>
精通正则表达式之正则引擎
查看>>
apache安装的一些问题
查看>>
SqlServer 为字段列添加扩展属性
查看>>
dev TreeList 节点联动
查看>>
汇编实验一——利用这3条指令计算2的8次方
查看>>
Java内部类
查看>>
GNU :6.47 Function Names as Strings
查看>>
Shell脚本编程(一)
查看>>