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

2、转换代码如下:

 bool utf8_to_unicode(char *inbuf, size_t *inlen, char *outbuf, size_t *outlen)
{ /* 目的编码, TRANSLIT:遇到无法转换的字符就找相近字符替换
* IGNORE :遇到无法转换字符跳过*/
char *encTo = "UNICODELITTLE";
//char *encTo = "gb2312";
//char *encTo = "UNICODE";
/* 源编码 */
char *encFrom = "UTF-8";
//char *encFrom = "utf-8"; /* 获得转换句柄
*@param encTo 目标编码方式
*@param encFrom 源编码方式
*
* */
iconv_t cd = iconv_open (encTo, encFrom);
if (cd == (iconv_t)-)
{
perror ("iconv_open");
} /* 需要转换的字符串 */
//DBG_PRINT("inbuf=%s\n", inbuf); /* 打印需要转换的字符串的长度 */
//DBG_PRINT("inlen=%d\n", *inlen); /* 由于iconv()函数会修改指针,所以要保存源指针 */
char *tmpin = inbuf;
char *tmpout = outbuf;
//size_t insize = *inlen;
size_t outsize = *outlen; /* 进行转换
*@param cd iconv_open()产生的句柄
*@param srcstart 需要转换的字符串
*@param inlen 存放还有多少字符没有转换
*@param tempoutbuf 存放转换后的字符串
*@param outlen 存放转换后,tempoutbuf剩余的空间
*
* */
size_t ret = iconv(cd, &tmpin, inlen, &tmpout, outlen);
if (ret == -)
{
perror ("iconv");
} /* 存放转换后的字符串 */
//DBG_PRINT("outbuf=%s\n", outbuf); //存放转换后outbuf剩余的空间
//DBG_PRINT("outlen=%d\n", *outlen); int i = ; for (i=; i<(outsize- (*outlen)); i++)
{
////DBG_PRINT("%2c", outbuf[i]);
//DBG_PRINT("%x\n", outbuf[i]);
} /* 关闭句柄 */
iconv_close (cd); return ;
}

UTF8转unicode说明的更多相关文章

  1. UTF-8和Unicode

    What's the difference between unicode and utf8? up vote 103 down vote favorite 49 Is it true that un ...

  2. 【GoLang】GoLang UTF8 与 Unicode

    结论: 通用的UTF8编码可是Ken Thompson和Rob Pike共同发明的, 他们都是Go的作者. Go中rune对应unicode的码点, string只是UTF8编码.len(" ...

  3. [转]unicode,ansi,utf-8,unicode big endian的故事

    unicode,ansi,utf-8,unicode big endian的故事很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的 ...

  4. paip.utf-8,unicode编码的本质输出unicode文件原理 python

    paip.utf-8,unicode编码的本质输出unicode文件原理 python      #别的语言,java php都是unicode,走十python不一样.    #enddef  #t ...

  5. PHP UTF-8和Unicode编号互转

    PHP UTF-8和Unicode编号互转 /** * utf-8 转unicode * * @param string $name * @return string */ function utf8 ...

  6. 跨平台utf8转unicode研究实现(2)

    最近在用VC++开发一个小工具,平时用惯了.NET,用起VC++最郁闷的就是字符串处理.当然最最让人难于琢磨的就是字符集,编码之间的转换.通过这几天的研究,终于明白了Unicode和UTF-8之间编码 ...

  7. 浅谈编码Base64、Hex、UTF-8、Unicode、GBK等

    网络上大多精彩的回答,该随笔用作自我总结: 首先计算机只认得二进制,0和1,所以我们现在看到的字都是经过二进制数据编码后的:计算机能针对0和1的组合做很多事情,这些规则都是人定义的:然后有了字节的概念 ...

  8. linux下php中文UTF-8转换Unicode方法和注意事项

    先说下遇到问题:1.php没有内置unicode_ecode函数可以直接使用 2.网上很多资料都是用$str = iconv($encoding, 'UCS-2', $str); window下转换出 ...

  9. utf-8和Unicode的区别

    链接 utf-8和Unicode到底有什么区别?是存储方式不同?编码方式不同?它们看起来似乎很相似,但是实际上他们并不是同一个层次的概念 要想先讲清楚他们的区别,首先应该讲讲Unicode的来由. 众 ...

  10. Python中GBK, UTF-8和Unicode的编码问题

    编码问题,一直是使用python2时的一块心病.几乎所有的控制台输入输出.IO操作和HTTP操作都会涉及如下的编码问题: UnicodeDecodeError:‘ascii’codec can’t d ...

随机推荐

  1. golang的项目结构 相关知识

    ### 项目结构 ``` ├── bin │   ├── login │   └── main ├── pkg │   └── darwin_amd64 │   └── login │   └── a ...

  2. mysql前缀索引的应用

    在mysql中有时需要索引的列很长,如果直接应用索引会造成索引过大的问题.因此我们可以取其中一部分字段来做索引,例: 添加索引:alter table * add key (field(3));   ...

  3. Uncaught TypeError: this.canvas.getContext is not a function

    /**************************************************************************** * Uncaught TypeError: ...

  4. Storm实时计算:流操作入门编程实践

    转自:http://shiyanjun.cn/archives/977.html Storm实时计算:流操作入门编程实践   Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比 ...

  5. 学习动态性能表(10)--v$session_longops

    学习动态性能表 第十篇--V$SESSION_LONGOPS  2007.6.7 本视图显示运行超过6秒的操作的状态.包括备份,恢复,统计信息收集,查询等等. 要监控查询执行进展状况,你必须使用cos ...

  6. angular track by $index

    这个东西配合删除数组时会出现永远删除uoloadPicArr这个数组的最后一个一项 其用法是主要用在当ng-repeat循环时如果其内部的dom元素有id属性存在 可以避免页面出现相同的id  只是一 ...

  7. BZOJ4198:[NOI2015]荷马史诗

    浅谈\(Huffman\)树:https://www.cnblogs.com/AKMer/p/10300870.html 题目传送门:https://lydsy.com/JudgeOnline/pro ...

  8. MySQL 5.7.10 自动备份、自动清理旧备份集(转)

    1,mysqldump备份脚本 备份脚本为,里面有几个需要注意的参数: (1)--master-data=2 :这个参数可以在搭建从库的时候,记录当前备份的复制点信息. (2)--extended-i ...

  9. 安装CenOS7.4 LNMP环境

    从头开始安装环境 1.在vmware中安装最新的CentOS7.4 linux版本下载地址:http://man.linuxde.net/download/ 下载好的东东为:iso后缀的文件 安装教程 ...

  10. qt在linux下使用open,write,close等文件操作

    正常在linux下使用的文件操作函数为: #include <fcntl.h>fd = open(“path”,O_RDWR|O_NONBLOCK); 但是在qt中,需要使用: #incl ...