汉字编码,转换和显示
来源:互联网 发布:淘宝一元购对暗号 编辑:程序博客网 时间:2024/05/17 21:44
一。汉字编码知识
1.汉字国标准码GB2312
国标码就是国家标准汉字编码 ,一个汉字由两个字节组成 , 每个字节范围是0--94。
2.汉字机内码
机内码简单的说就是你新建设个文本文档写上两个汉字“你好”,查看文件的十六进制数据是C4E3BAC3
0xC4E3是“你”的机内码,0xBAC3是“好”的机内码,而这两个机内码的高字节和低字节分别减去128其实就是国标码。
3.汉字区位码
国标码中汉字及符号组成一个94行94列的二维代码表中。在此方阵中,每一行称为一个"区",每一列称为一个"位"。
也就时94个区,每个区有94个位。区位码顾名思意就是汉字在这个表中的位置。
而区位码是由汉字机内码的高字节和低字节分别减去128(0xa0)得到。
4.UNICODE码
收入进国际UNICODE统一编码的所有国家的所有文字符号,都有唯一的编号。
余话:
对应汉字国标码,英文的标准是ASCII码,由一个字节表示,范围0--255。
机内码比国标码多了个128因为要与ASCII码区别开,如果你在文档里写“好A”,一查看文件有3个字节BAC341,其中汉字占两个字节,ASCII码占一个字节。
你自己分得清楚汉字在前还是在后,但机器去识别的时候就会喊娘,到底是BAC3还是C341表示一个汉字啊,仔细一看,机内码是在国标码的基础上每个字节加128(0x80)得来的,也就是说表示汉字的两个字节中每一个都会大于0xa0,字节0x41不可能是汉字的机内码,所以BAC3表示汉字,41表示ASCII码英文字符。加128就是为了区别开。
二。WINCE字符编码转换和文字显示:
wince设备上输出字符是以UNICODE编码的。
如果要显示ANSI字符,需要用MultiByteToWideChar转换
MultiByteToWideChar 第一个参数表示所要转换字符的语言代码页编号 如874泰语
这个函数会通过windows/wince.cls这个文件查表来进行转换
但有个前提是,wince.cls中包含了874的转换表,所以必须在local代码页选项目中添加泰语874才能支持
该功能。
另一种办法就是自己作一个转换表codetable[],完成与MultiByteToWideChar类似的算法。
最后调用windows的写字函数。
显示ANSI字符的最后一种办法,就是不用windows的写字函数。
如果是英文系统没有中文的代码页,此时要显示非UNICODE的中文字符。
找到你能用的汉字矢量字库,由这些字符编码计算出每个汉字的区位码,根据区码位码到字库文件中查找矢量字形信息
用DC句柄画出这些点,直线,曲线,字就写成了。
- 汉字编码,转换和显示
- 汉字编码转换青
- JS汉字编码转换(转)
- js中的汉字编码转换
- JavaScript URL汉字编码转换
- JavaScript URL汉字编码转换
- JavaScript URL汉字编码转换
- 汉字编码表示与显示
- 使用C++转换URL汉字编码~
- 汉字编码转换原理及方法
- 地址栏汉字编码自动转换问题
- amsn ubuntu和汉字编码
- 汉字编码及显示原理总结
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 汉字编码
- 我的面试经历(1)
- “生活”设计
- 透过Omniture峰会管窥广告行业发展趋势
- MS Chart Control的自定义属性(custom attributes)
- 归属感
- 汉字编码,转换和显示
- CMMB蓄势待发,模拟电视东山再起
- 中国农民将是3G应用的主力军
- php-fpm文档中文翻译
- Scilab 语法与 Matlab 的主要区别
- javascript中的函数
- 置死地而后生?!什么是自杀式营销?
- 深入认识JavaScript中的this指针
- MyLinkedList(Day13)