LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

GB2312及UTF8编码【转】

admin
2010年12月15日 0:12 本文热度 3697
汉字区位码:将汉字定义在一个94行,94列的表中,常用汉字在16-55行,其他汉字在56-87行,符号在1-9区,其他行未定义,其中55行的第90列至94列未定义。比如,“万”字的区位码是 45 82, 在45行,82列。

汉字国标码:又称交换码,是一个码集。将区位码的十进制行列值转换成16进制,再分别加上20H得到。举例:将“万”的区位码转换为16进制表示:2D 52,分别加上20H得:4D 72,即为国标码。
由此,汉字第一个字节的最小值:10H + 20H =30H, 最大值:57H + 20H = 77H
第二个字节最小值: 01H + 20H = 21H, 最大值: 5EH + 20H = 7EH

GB2312:是一种编码方式,由于国标码和ASC(00H-80H)码重叠,导致计算机无法识别,为解决此问题,将国标码的每个字节最高位置1,使得每个字节大于80H,从而与ASC码区分,这样英文字符和汉字在同一个文件中可以区分开。
由此GB2312编码的汉字第一个字节最小值:30H | 80H = B0H, 最大值:77H | 80H = F7H
第二个字节的最小值: 21H | 80H = A1H, 最大值:7EH | 80H = FEH
因此,GB2312的编码范围是:B0A1H 到 F7FEH,B0A1H到F7FEH可以容纳18269个字符,而实际只用了6763个汉字,所以GB2312码并非完全码,存在浪费。
根据GB2312码可以反推区位码,在PHP4.0时代,由于GD库不支持汉字,很多程序就是利用GB2312编码反推区位码,然后根据区位码获取字体文件中汉字的字符点阵数据,然后画图。

GBK:是GB2312的扩充,兼容GB2312,包括了20292个汉字。采用双字节编码,编码范围是 8140H 到 FEFEH,可见第一个字节大于80H,可以和ASC码区分开,第二个字节和ASC码存在重叠部分,但可以根据前一个字节是否大于80H进行判定,因此GBK码是兼容ASC码的。

各类编码的范围:
编码        高位字节       低位字节
区位码     (10进制)      16-87 1-94
国标码     (16进制)      30H-77H 21H-7EH
GB2312     (16进制)      B0H-F7H A1H-FEH


Unicode:目前采用两个字节编码,理论上可以表示65535个字符,ASC码也采用两字节编码,在每个ASC码前加00H。Unicoe和汉字区位码没有任何关系,只是在65535字符空间的范围内分配了20902个字符给汉字。要将Unicode转换为GB2312或GBK,需要一个映射表,目前网上有各种映射表,可以方便的将Unicode码转换为区位码、国标码、GB2312码等。
提供一个下载链接:http://www.haible.de/bruno/charsets/conversion-tables/GB2312.tar.bz2

UTF-8:直接采用Unicode码的编码称为UTF-16,由于UTF-16中含有00H,对于像Unix这样的操作系统,00H具有特别的意义,容易出现问题。UTF-8很好的解决了这个问题,通过对Unicode进行编码,ASC码仍然采用单字节表示。

该文章在 2010/12/15 0:12:00 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved