大学计算机基础教程(Windows 7+Office 2010)
上QQ阅读APP看书,第一时间看更新

1.5.3 汉字编码

汉字也是一种字符,其字形结构复杂、笔画较多,重音字、多音字多,与西文拼音文字相比,它是一种象形文字和表意文字,数量庞大,这就决定了汉字编码处理与西文拼音文字编码处理有较大差别,用计算机进行处理比西文拼音文字困难得多,它涉及多种编码。首先,将汉字通过键盘输入计算机的编码称为汉字输入码(外码);输入码进入计算机后须转换成汉字内码(机内码)才能进行处理;显示和打印还需要汉字字形码;不同系统间通信和交换汉字信息还要通过汉字交换码。

1.汉字输入码

通过西文键盘将汉字输入到计算机所采用的代码叫汉字输入码。西文的每一个输入码都与键盘上的按键一一对应,但对于汉字却不能如此,否则仅常用汉字就需要数千个按键的大键盘。汉字输入码很多,目前,最常见的汉字输入码的编码方案主要有字音、字形、数字、音形四大类。

1)字音编码

依据汉字汉语拼音或压缩拼音作编码。如全拼音输入码、双拼音输入码、简化压缩拼音输入码、智能ABC输入码、搜狗输入码等。其特点是输入简单,易于掌握,但重码率高。

2)字形编码

依据汉字字形结构特征和笔画进行编码。通过基本的字根(一些选出的组字的基本单位)部件像搭积木一样组装汉字。如笔画输入码、首尾输入码、五笔字型输入码等。其特点是重码率低,但入门相对困难。

3)数字编码

以数字作为输入码。如国标码、区位码、电报码等。其特点是没有重码,但难于记忆。

4)音形混合码

音形结合构成编码。如自然码等。其特点是音形互为补充,识记较容易。

2.汉字国标码(交换码)

我国于1980年颁布了第一个汉字编码字符集标准,即信息交换用汉字编码字符集·基本集,简称国标字符集GB 2312—1980,其编码称为国标码。它规定每个汉字及符号用两个字节来表示,每个字节的最高位为0。

两个字节分别表示成“区”“位”,构成区位码,第一个字节称为“区”,第二个字节称为“位”,共94区94位,汉字及字符可在相应的“区”“位”中确定,因此国标码和区位码存在着内在联系,人们有时会将两者混为一谈。国标码对7445个汉字及符号进行编码,其中特殊符号682个,常用一级汉字3755个,较常用二级汉字3008个,一二级汉字共计6763个。

3.汉字机内码

前面讲过,ASCII进入计算机后进行处理存储时,机内代码就是ASCII,字节高位为0。而汉字国标码进入计算机后由于组成汉字编码的两个字节的最高位都是0,如果汉字利用国标码作为机内表示,在一个文本中汉字与西文字符混合在一起使用势必引起混淆。为了解决这一问题,不至于让国标码和ASCII相混,可将国标码两个字节的最高位均置为1,成为的汉字编码称为汉字机内码。这样就较好地将一个汉字的两个字节与两个单字节的ASCII字符区分开来,汉字内码是汉字在计算机内部存储、运算的编码,是任何一个汉字系统都必须具备的。

当一个汉字以某种输入码进入计算机后,汉字管理模块立即将其转换成两字节长的GB 2312—1980国标码,再将国标码每个字节的最高位置为“1”成为该汉字的机内码进行处理,同样,当内部汉字信息与外部交换时,也要转换成国标码才能输出。例如,汉字“啊”的国标码是3021H(00110000 00100001B),内码是B0A1H(10110000 10100001B)。

4.汉字字形码

存储在计算机内的汉字需要在显示器或打印机上输出时,由于汉字内码不是汉字的字形信息,因此不能直接输出,而是要根据汉字的内码再检索出相应汉字的字形码后,送到输出设备得到汉字的字形。

构造汉字字形有点阵法和矢量法,它们编码对应的就是点阵码和矢量码。对于每一个汉字,都要有对应的字形存储在计算机内,各个字的字形集合就构成了字库。汉字输出时,需要先根据内码找到字库中对应的字形码输出汉字。

1)点阵码

点阵码是一种点阵表示汉字的编码,它把汉字以点阵形式记录在存储介质上,有点的地方为“1”,空白的地方为“0”,再用它去驱动字形电路输出字形。常用的点阵有16×16、24×24、32×32、64×64甚至更高。存储一个64×64的点阵汉字字形码:8(64位8字节)×64=512B。“中”字的16×16点阵汉字字形如图1-20所示。

图1-20 用16×16点阵组成的“中”字汉字字形

点阵码显著的缺点是缩放困难,容易失真。

2)矢量码

矢量码是使用一组数学矢量来记录汉字的外形轮廓,即将汉字分解成笔画,每种笔画使用一段直线(矢量)近似地表示,这样每个字形都可以变成一连串的矢量。矢量码记录的字体称为矢量字体或轮廓字体。

矢量码记录的字体具有容易缩放且节省存储空间的特点。现在普遍使用的是轮廓字体(True Type字体),即宋体、仿宋体、楷体和黑体4种True Type字体的汉字库。