C/C++中,GB2312转Unicode
嵌入到多个系统编程时常常出现编码问题,特别是中文,并且对于国标GB2312来说,不像UTF-8那样可以用算法直接转为unicode(传说是这么说的,我也没试过),所以GB到Unicode只能是一对一的转换。
以前碰到过GB转为Unicode的难题,在网上找到了源码,我只是修改了一下查找的代码,将查找算法改为二分查找。
主要函数为:
unsigned int gb_uni(unsigned int gb_idx); // 传入一个汉字所对应的gb2312编码,返回该汉字的Unicode编码
GB编码简单分析:
比如“我”字的gb编码为0xCED2,unicode编码为0x6211,那么0x6211==gb_uni(0xCED2),在windows的文档里面,小于0x0a1,都是ansii编码,GB2312中每个汉字用双字节标识,比如“我”字,gb码为上位编码为0xFFFFFF62和下位编码为0xFFFFFF11,组合后为0x6211,所以一般分析中英文档,逐个字符判断,小于0x0a1则为ansii,大于,则为汉字的开始,需要预读取下一个字符来合成一个汉字的编码。
源代码
在这里(点击超链接即可):
在vim下
输入:set fdm=marker,查看会比较舒服
C/C++ GB2312转为Unicode的源码
相关文档:
文章记录了作者在S3C2440开发板上实现按键点亮LED驱动开发的详细过程,还记录了一些容易出现的错误,以及怎么解决这些错误。
一、驱动开发流程
Linux驱动开发不同于应用程序的开发。驱动开发是直接和硬件打交道的,通过对硬件的操作给应用程序提供一些接口函数,使得应用程序能够&l ......
在C语言编程中,static的一个作用是信息屏蔽!
比方说,你自己定义了一个文件 -- 该文件中有一系列的函数以及变量的声明和定义!
你希望该文件中的一些函数和变量只能被该文件中的函数使用,那么,你可以在该函数、变量的前面加上static,代表他们只能被当前文件中的函数使用!
而在C++中,用static来作为信息 ......
下载源代码
Python简介
Python是一种简单易学,功能强大的解释型编程语言,它有简洁明了的语法,高效率的高层数据结构,能够简单而有效地实现面向对象编程,特别适用于快速应用程序开发,也可以用来开发大规模的重要的商业应用。Python是一个理想的脚本语言。
Python免费开源,可移植到多种操作系统,只要避免使 ......
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千计 ......