GB2312汉字区位码、交换码和机内码转换⽅法(转)
GB2312汉字区位码、交换码和机内码转换⽅法 (ZT)
为了适应计算机处理汉字信息的需要,1981年我国颁布了GB2312国家标准。该标准选出6763个常⽤汉字(其中,⼀级常⽤汉字3755个,⼆级汉字3008个)和682个⾮汉字字符,并为每个字符规定了标准代码,以便在不同的计算机系统之间进⾏汉字⽂本交换。
GB2312字符集构成⼀个94⾏、94列的⼆维表,⾏号称为区号,列号称为位号,每⼀个汉字或符号在码表中的位置⽤它所在的区号和位号来表⽰。
为了处理与存储的⽅便,每个汉字的区号和位号在计算机内部分别⽤⼀个字节来表⽰。例如,“学”字的区号为49,位号为07,它的区位码即为4907,⽤2个字节的⼆进制数表⽰为:
00110001 00000111
区位码⽆法⽤于汉字通信,因为它可能与通信使⽤的控制码(00H~1FH)(即0~31)发⽣冲突。ISO2022规定每个汉字的区号和位号必须分别加上32(即⼆进制数00100000),经过这样的处理⽽得的代码称为国标交换码,简称交换码,因此,“学”字的国标交换码计算为:
00110001 00000111
+00100000 +00100000
--------------------------
01010001 00100111
⽤⼗六进制数表⽰即为5127H。
由于⽂本中通常混合使⽤汉字和西⽂字符,汉字信息如果不予以特别标识,就会与单字节的ASCII码混淆。此问题的解决⽅法之⼀是将⼀个汉字看成是两个扩展ASCII码,使表⽰GB2312汉字的两个字节的最⾼位都为1。这种⾼位为1的双字节汉字编码即为GB2312汉字的机内码,简称为内码。
因此,“学”字的机内码为:
11010001 10100111
⽤16进制表⽰即为D1A7H。
最后要指出的是,汉字的输⼊编码与汉字的机内码是不同范畴的概念。不管采⽤什么样的编码输⼊法(例如拼⾳、五笔字型等)来输⼊⼀个汉字,其机内码都是相同的。
说明:本⽂整理⾃《⼤学计算机信息技术教程》(南京⼤学出版社)⼀书。
-----------------------------------------------------------------
汉字库通俗地说就是计算机软件系统中的汉字仓库,依据不同的标准,字库中汉字的数量是不同的,以前的主要标准有:
1、GB 2312 汉字编码字符集
从1975年开始,我国为了研究汉字的使⽤频度,进⾏了⼤规模的字频统计⼯作,内容包括⼯业、农业、军事、科技、政治、经济、⽂学、艺术、教育、体育、医药卫⽣、天⽂地理、⾃然、化学、⽂字改⾰、考古等多⽅⾯的出版物,在数以亿计的浩瀚⽂献资料中,统计出实际使⽤的不同的汉字数为6335个,⽽其中有3000多个汉字的累计使⽤频度达到了99.9%,⽽另外的3000多个累计频度不到0.1%,说明了常⽤汉字与次常⽤汉字的数量不⾜7000个,这就为国家制定汉字库标准提供了依据。1980年颁布了《信息交换⽤汉字编码字符集—基本集》的国标交换码,国家标准号为:GB2312-80,选⼊了6763个汉字,分为两级,⼀级字库中有3755个,是常⽤汉字,⼆级字库中有3008个,是次常⽤汉字;还选⼊了682个字符,包含有数字、⼀般符号、拉丁字母、***假名、希腊字母、俄⽂字母、拼⾳符号、注⾳字母等。以前我国⼤陆的各种中⽂DOS版本、Windows3.1 /3.2版本,装⼊的字库都是国标⼀⼆级字库。遇到“镕、啰、瞭、袆、祎、曌、赟、贇、鱻、驫、犇……”等汉字,既⽆法输⼊,⼜不二进制编码转换
能打印。
后来国家技术监督局⼜颁布了⼀个与之相对应的繁体字集,全称《信息交换⽤汉字编码字符集辅助集》,标准号为GB/T12345-90。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论