我国用户在使用计算机进行信息处理时,一般都要用到汉字。由于汉字是象形文字,字的数目很多, 常用汉字就有3000~5000个,加上汉字的形状和笔画多少差异极大,因此,不可能用少数几个确定的符号将汉字完全表示出来,或像英文那样 将汉字拼写出来。汉字必须有它自己独特的编码。
1. 汉字信息交换码(国标码)
《信息交换用汉字 编码字符集·基本集》是我国于1980年制定的国家标准 GB2312-80,代号为国标码,是国家规定的用于汉字信息处理使用的代码依据。
GB2312-80中规定了信息交换用的6763个汉字和682个非汉字图形符号(包括几种外文字母、数字和符号)的代码。
6763个汉字又按其 使用频度、组词能力以及用途大小分成一级常用汉字3755个和二级常用汉字3008个。
一级汉字按拼音字母顺序排列;若遇同音字,则 按起笔的笔形顺序排列;若起笔相同,则按第二笔的笔形顺序排列,依次类推。所谓笔形顺序,就是横、竖、撇、点和折的顺序。二级汉字按 部首顺序排列。
在此标准中,每个汉字(图形符号)采用双字节表示。每个字节只用低7位,最高位恒为1。由于低7位中有34种状态是用 于控制字符,因此,只有94(128-34=94)种状态可用于汉字编码。这样,双字节的低7位只能表示94×94=8836种状态。
编码范围 |
二进制数码 |
十进制数码 |
基本 ASCII 码 |
00000000~01111111 |
0~127 |
控制字符 |
00000000~00100000、01111111 |
0~32、127 |
可用汉字段 |
00100001~01111110 |
33~126 (1~94) |
扩充 ASCII 码 |
10000000~11111111 |
128~255 |
控制字符 |
10000000~10100000、11111111 |
128~160、255 |
GB2312-80 |
10100001~11111110 |
161~254 (1~94) |
此标准的汉字编码表有94行、94列,其行号称为区号,列号称为位号。双字节中,用 高字节表示区号,低字节表示位号。非汉字图形符号置于第1~11区,一级汉字3755个且于第16~55区,二级汉字3008个置于第56~87区。
每个图形字符的汉字交换码,均用两个字节的低7位二进制码表示。汉字国标码通常用十六进制数表示。
例如:“中”字的区号为 54,位号为48,计算它的二进制数和十六进制数国标码。
解:先将区、位号分别加上 32 :
54+32=86
48+32=80
分别转换为二进制数:
(86)10=01010110
(80)10=0 1010000
得到二进制数国标码为:
01010110 01010000。
最后通过 8 4 2 1 ── 二进制取位法转换成十六 进制汉字国标码为:5650。
又如“国”字的区号为25,位号为90,用以上相同的方法得到它的国标码为:
二进制:00111001 01111010
十六进制:397A
2. 汉字的机内码
汉字的机内码是供计算机系统内部进行存储、加 工处理、传输统一使用的代码,又称为汉字内部码或汉字内码。目前使用最广泛的一种为两个字节的机内码,俗称变形的国标码。这种格式的 机内码是将国标 GB2312-80 交换码的两个字节的最高位分别置为l而得到的。其最大优点是机内码表示筒单,且与交换码之间有明显的对应关 系,同时也解决了中西文机内码存在二义性的问题。
例如“中”的国标码为十六进制
5650(01010110 01010000),
其对应的机内码为十六进制:
D6D0(11010110 11010000)。
同样,“国”字的国标码为:397A,其对应的机内冯为: B9FA。
汉字的机内码与国标码的关系:
◆十六进制:
机内码区号(16)=国标码 高位字节+80H
机内码位号(16)=国标码低位字节+80H
◆十进制:
机内码区号=国标码高位字 节(10)+128
机内码位号=国标码低位字节(10)+128
汉字的区位码与国标码的关系:
◆十六进制:
国标码高位字节=区位码区号(16)+20H
国标码低位字节=区位码位号(16)+20H
◆十进制:
国标码高位字节(10)=区位码区号+32
国标码低位字节 (10)=区位码位号+32
汉字的区位码与机内码的关系:
◆十六进制:
机内码高位字节 =区位码区号(16)+A0H
机内码低位字节=区位码位号(16)+A0H
◆十进制:
机内 码高位字节(10)=区位码区号+160
机内码低位字节(10)=区位码位号+160
3. 汉字的 输入码(外码)
汉字输入码是为了将汉字通过键盘输入计算机而设计的代码。汉字输入编码方案很多,其表示形式大多用字 母、数字或符号。输入码的长度也不同,多数为四个字节。综合起来可分为流水码、拼音类输入法、拼形类输入法和音形结合类输入法几大类 。
4. 汉字的字形码
汉字字形码是汉字字库中存储的汉字字形的数字化信息,用于汉字的显示和打印 。目前汉字字形的产生方式大多是数字式,即以点阵方式形成汉字。因此,汉字字形码主要是指汉字字形点阵的代码。
汉字字形点阵有l6×16点阵、24×24点阵、32×32点阵、64×64点阵、96 ×96点阵、128×128点阵、256×256点阵等。
一个汉字方块中行数、列数分得越多,描绘的汉字也就越细微,但占用的存储空间也就 越多。汉字字形点阵中每个点的信息要用一位二进制码来表示。对于16×16点阵的字形码,需要用32个字节(16×16÷8=32)表示;24×24点阵 的字形码需要用72个字节(24×24÷8=72)表示。
汉字字库,是汉字字形数字化后,以二进制文件形式存储在存储器中而形成的汉字字 模库。汉字字模库亦称汉字字形库,简称汉字字库。汉字字库可分为软汉字字库和硬汉字字库。
汉字字库文件存储在软盘或硬盘中,称为软汉字宇库。汉字字库存储在汉卡中,将汉卡安装在机器的扩展槽中,称为硬汉字字库,亦称汉卡