国标码、区位码、内码之间的关系

1. 输入码

汉字的字数繁多,字形复杂,常用的汉字有6000—7000个,比英文的26个字母要多得多。在计算机系统中使用汉字, 首先遇到的问题就是如何把汉字输入到计算机内。为了能直接使用西文标准键盘进行输入,必须为汉字设计相应的编码方法。汉字编码方法主要分为三类:数字编 码、拼音编码和字形编码。

⑴数字编码

数字编码就是用数字串代表一个汉字的输入,常用的是国标区位码。国标区位码将国家标 准局公布的的6763个两级汉字分成94个区,每个区定为94位,实际上是把汉字表示成二维表的形式,区码和位码各用两位十进制数字表示,因此,输入一个 汉字需要按键四次。例如,“中”字位于第54区48位,区位码为5448。

汉字在区位码表的排列是有规律的。在94个分区中,1—15区 用来表示字母、数字和符号,16—87区为一级和二级汉字。使用区位码方法输入汉字时,必须先在表中查找汉字并找出对应的代码,才能输入。数字编码输入的 优点是无重码,而且输入码和内部编码的转换比较方便,但是每个编码都是等长的数字串,代码难以记忆。

⑵拼音编码

拼音编码是以汉语读音为基础的输入方法。由于汉字同音字太多,输入重码率很高,因此,按拼音输入后还必须进行同音字选择,影响了输入速度。

⑶字形编码

字 形编码是以汉字的形状确定的编码。汉字总数虽多,但都是由一笔一划组成,全部汉字的部件和笔划是有限的。因此,把汉字的笔划部件用字母或数字进行编码,按 笔划书写的顺序依次输入,就能表示一个汉字,五笔字型、表形码等便是这种编码法,这种方法得缺点也是需要记忆很多的编码。五笔字型编码是最有影响的字形编 码方法之一。

2. 汉字国标交换码和机内码

西文处理系统的交换码和机内码均为ASCII,用一个字节表示,一般只用低七 位。1981年我国在国标GB2312-80制定了汉字交换码也称为国标交换码(简称国标码)。在国标码中,一个汉字用两个字节表示,每个字节也只用其中 的七位,每个字节的取值范围和94个可打印的ASCII字符的取值范围相同(21H-7EH),涵盖了一、二级汉字和符号。为了避免ASCII码和国标码 同时使用时产生二义性问题,大部分汉字系统一般都采用将国标码每个字节高位置“1”作为汉字机内码。这样既解决了汉字机内码与西文机内码之间的二义性,又 使汉字机内码与国标码具有极简单的对应关系。区位码、国标码和机内码之间的关系可以概括为(区位码的十六进制表示) 2020H=国标码,国标码 8080H=机内码,以汉字“大”为例,“大”字的区内码为2083,将其转换为十六进制表示为1453H,加上2020H得到国标码3473H,再加上 8080H得到机内码为B4F3H。

3. USC编码

为了统一地表示世界各国的文字,1993年中华人民共和国规定国家 标准(简称为GB 13000)采用国际标准化组织公布的“通用多八位编码字符集”的国际标准ISO/IEC 10646,简称UCS(Universal Code Set)。UCS包含了中、日、韩等国的文字,这一标准为包括汉字在内的各种正在使用的文字规定了统一的编码方案。该标准是用四个字节来表示每一个字符, 并相应地指定组、平面、行和字位。GB 13000规定的通用多八位编码字符集应被视为一个单一的实体。

整个编码字符集应被表达为包含128(一个字节的低七位即27=128)个组,其中每个组表示256(28=256)个平面。每一平面包含256行,每行有256个字位。四个字节共32位足以包容世界上所有的字符,同时也符合现代处理系统的体系结构。

第一个平面(00组中的00平面)称为基本多文种平面,它包含字母文字、音节文字及表意文字等。它分成四个区:

⑴A区:代码位置0000H—4DFFH(19903个字位)用于字母文字、音节文字及各种符号。

⑵I区:代码位置4E00H—9FFFH(20992个字位)用于中、日、韩(CJK)统一的表意文字。

⑶O区:代码位置A000H—DFFFH(16384个字位)留于未来标准化用。

⑷R区:代码位置E000H—FFFDH(8190个字位)作为基本多文种平面的限制使用区,它包括专用字符、兼容字符等各种符号。

如汉字的“大”国标码是3473H,在UCS的编码为00005927H,即在00组,00面,59H行,第27H字位上。

4. 汉字字形码

汉 字字形码是表示汉字字形的字模数据,通常用点阵、矢量函数等方式表示,用点阵表示字形时,汉字字形码一般指确定汉字字形的点阵代码。字形码也称字模码,它 是汉字的输出形式,随着汉字字形点阵和格式的不同,汉字字形码也不同。常用的字形点阵有16×16点阵、24×24点阵、48×48点阵等等。

字模点阵的信息量是很大的,占用存储空间也很大,以16×16点阵为例,每个汉字占用32(2×16=32)个字节,两级汉字大约占用256KB。因此, 字模点阵只能用来构成“字库”,而不能用于机内存储。字库中存储了每个汉字的点阵代码,当显示输出时才检索字库,输出字模点阵得到字形。