2024年4月30日发(作者:)
一、基本概念
GB2312码
全称是GB2312-80《信息
交换
用汉字编码字符集基本集》,1980年发布,是
中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是
强制使用的唯一中文编码。P-
Windows
3.2和苹果OS就是以GB2312为基本汉字编
码,
Windows
95/98则以GBK为基本汉字编码、但兼容支持GB2312。GB码共收
录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,
二级字3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程
起了很大作用。1990年又制定了繁体字的编码标准GB12345-90《信息
交换
用汉
字编码字符集第一辅助集》,目的在于规范必须使用繁体字的各种场合,以及古
籍整理等。该标准共收录6866个汉字(比GB2312多103个字,其它厂商的字库
大多不包括这些字),纯繁体的字大概有2200余个。(2312集与12345集不是
相交的。一个是简体,一个是繁体)
穞abBIG5编
是目前台湾、香港地区普遍使用的一种繁体汉字的编码标准,包括440个符
号,一级汉字5401个、二级汉字7652个,共计13060个汉字。Big-5 是一个双
字节编码方案,其第一字节的值在 16 进制的 A0~FE 之间,第二字节在 40~
7E 和 A1~FE 之间。因此,其第一字节的最高位是 1,第二字节的最高位则可
能是 1,也可能是 0。
穞abGBK编码(Chinese Internal Code Specification)
GBK编码(俗称大字符集)是中国大陆制订的、等同于UCS的新的中文编码
扩展国家标准。GBK工作小组于1995年10月,同年12月完成GBK规范。该编
码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码
位,简、繁体字融于一库。Windows95/98简体中文版的字库表层编码就采用的
是GBK,通过GBK与UCS之间一一对应的码表与底层字库联系。其第一字节的值
在 16 进制的 81~FE 之间,第二字节在 40~FE,除去xx7F一线。
穞abUnicode编码(Universal Multiple Octet Coded Character Set)
国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国
文字、符号进行统一性编码。1991年美国跨国公司成立Unicode Consortium,
并于1991年10月与WG2达成
协议
,采用同一编码字集。目前Unicode是采用16
位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)
相同。Unicode于1992年6月通过DIS(Draf International Standard),目
前版本V2.0于1996公布,内容包含符号6811个,汉字20902个,韩文拼音11172
个,造字区6400个,保留20249个,共计65534个。
二、一些注解
在此解释一下我们常见的一些汉字内码转换工具:
1、最常见的是GB2Big5和Big52GB转换工具。这里的GB指是GB2312集。
2、 GBK简体兼容GB2312字符集及其编码。不规范理解为GB就是GBK简体。
3、繁体不等同于Big5,在GBK集中也有繁体,GB12345集也有繁体。但这
三者的汉字编码方式不同。Windows95/98/NT/2000(简体中)中使用的都是GBK
字符集;繁体版使用的是Big5字符集,在简体版中无法正常显示Big5字符,繁
体版无法显示GB字符。
4、在IE中,进入Big5码网站(如:台湾网站),如果安装有Big5字符集
支持,IE会将Big5网页转换成GBK繁体显示,没有则是乱码。IE以GBK繁体显
示时,在网页中输入的汉字应当是GBK繁体,以Big5码显示时(乱码),要输
入Big5码字符(输入乱码?先输入GBK简体----GB码,再使用小工具将其转换
成Big5,拷贝,粘贴即可)。
5、常见的小工具中,可将Big5转换成GBK繁体的不多,可将GBK简体繁体
相互转换的也不多。其原因是,他们是将GB2312字符集与Big5字符集建立了对
应关系。
三、内码转换原理及方法
内码转换:就是在不同字符集之间建立一种对应关系。
以GBK2Big5(简繁体都可)
如:让字,在GBK中编码是C8C3。如果我们将GBK码表中的字符变成Big5
码格式,则C8C3位上的应该是攍och 让攠字的Big5码字符攠琵攠(琵字不是
GBK中的琵,而是攠让攠字的Big5码汉字在GBK环境中显示结果)。这样我们
读出要转换的文字,在GBK(已经转换成Big5格式)码表中找到它的位置,取
出该位置上的字符,将原字符替换即可。
读写字符不是问题。关键是如何在码表文件中对该汉字进行定位和如何将纯
GBK码表转换成Big5格式表示的GBK码表。
问题一、对汉字进行定位。
GBK 代码表(按代码顺序排列) 81-87 88-8F 90-97 98-9F A0-A7
A8-AF B0-B7 B8-BF
C0-C7 C8-CF D0-D7 D8-DF E0-E7 E8-EF F0-F7 F8-FE
81 0 1 2 3 4 5 6 7 8 9 A B C D E F
4 丂 丄 丅 丆 丏 丒 丗 丟 丠 両 丣 並 丩 丮 丯 丱


发布评论