汉字符号比西文符号复杂得多,所以汉字符号的编码也比西文符号的编码复杂得多。首先,汉字符号的数量远远多于西文符号,汉字有几万个字符,就是国家标准局公布的常用汉字也有6 763个(常用的一级汉字3 755个,二级汉字3 008个)。一个字节只能编码28=256个符号,用一个字节给汉字编码显然是不够的,所以汉字的编码用了两个字节。其次,这么多的汉字编码让人很难记忆。为了使用户方便迅速地输入汉字字符,人们根据汉字的字形或者发音设计了很多种输入编码方案来帮助人们记忆汉字的编码。为了在不同的汉字信息处理系统之间进行汉字信息的交换,国家专门制定了汉字交换码,又称国标码。国标码在计算机内部存储时所采用的统一表达方式被称为汉字内码。无论是用哪一种输入编码方法输入的汉字,都将转换为汉字内码存储在计算机内。
综上所述,汉字的编码有3类:输入编码、内部码和字形码。这3类汉字编码之间的关系如图4.4所示。
图4.4 各汉字编码之间的关系
(1)汉字的输入编码
汉字的输入方式目前仍然是以键盘输入为主,而且是采用西文的计算机标准键盘来输入汉字,因此汉字的输入码就是一种用计算机标准键盘按键的不同组合输入汉字而编制的编码。人们希望能找到一种好学、易记、重码率低并且快速简捷的输入编码法。目前已经有几百种汉字输入编码方案,在这些编码方案中一般大致可以分为3类:数字编码、拼音码和字形编码。
1)数字编码
数字编码就是用数字串代表一个汉字的输入,常用的是国标区位码。例如,“中”字位于第54区48位,区位码为5448。数字编码输入的优点是无重码,而且输入码和内部编码的转换比较方便,但是每个编码都是等长的数字串,难以记忆,因此目前较少使用。
2)拼音码
拼音码是以汉语读音为基础的输入法。由于汉字同音字太多,输入重码率较高,因此,按拼音输入后还必须进行同音字选择,影响了输入速度。目前大部分的汉字输入都采用这种输入方式,比较常用的输入法有谷歌拼音输入法、搜狗拼音输入法等,如图4.5所示。
图4.5 谷歌拼音输入法和搜狗拼音输入法
3)字形编码
字形编码是以汉字的形状确定的编码。汉字总数虽多,但都是由一笔一画组成的,全部汉字的部首和笔画是有限的。因此,把汉字的笔画部首用字母或数字进行编码,按笔画书写的顺序依次输入,就能表示一个汉字。五笔字型编码是最有影响的字形编码方法,比较常用的输入法有万能五笔输入法、王码五笔型输入法、陈桥五笔输入法和极品五笔输入法等。
(2)汉字的存储(汉字内部码)(www.daowen.com)
世界各大计算机公司一般均以ASCII码为内部码来设计计算机系统。汉字数量多,用一个字节无法区分,一般用两个字节来存放汉字机内码。汉字机内码又称内码,对于汉字存储和处理来说,汉字较多,要用两个字节来存放汉字的机内码。为了避免与高位为0的ASCII码相混淆,根据GB 3212—80的规定,每字节最高位为1,这样内码和外码就有了简单的对应关系,同时也解决了中、英文信息的兼容处理问题。以汉字“啊”为例,其国标码为3021(H),机内码为B0A1(H)。
(3)汉字的输出(汉字字形码)
把汉字写在划分成m行n列小方格的网络方格中,该方阵称当m×n点阵。每个小方格是一个点,有笔画部分是黑点,文字的背景部分是白点,点阵中的黑点就描绘出汉字字形,称为汉字点阵字形[图4.6(a)]。用1表示黑点,0表示白点,按照自上而下、从左至右的顺序排列起来,就把字形转换成了一串二进制的数字[图4.6(b)]。这就是点阵汉字字形的数字化,即汉字字形码。字形码也称为字模码,它是汉字的输出形式,根据输出汉字的要求不同,点阵的多少也不同。常用的汉字点阵方案有16×16点阵、24×24点阵、32×32点阵和48×48点阵等。以16×16点阵为例,每个汉字要占用32个字节,两级常用汉字大约占用256 KB。一个汉字信息系统具有的所有汉字字形码的集合就构成了该系统的字库。
汉字输出时经常要使用汉字的点阵字形,因此,把各个汉字的字形码以汉字库的形式存储起来。但是汉字的点阵字形的缺点是放大后会出现锯齿现象,很不美观,而且汉字字形点阵所占用的存储空间比较大,要解决这个问题,一般采用压缩技术,其中矢量轮廓字形法压缩比大,能保证字符质量,是当今最流行的一种方法。矢量轮廓定义加上一些指示横宽、竖宽、基点和基线等控制信息,就构成了字符的压缩数据。
轮廓字形方法[图4.6(c)]比点阵字形复杂,一个汉字中笔画的轮廓可用一组曲线来勾画,它采用数学方法来描述每个汉字的轮廓曲线。中文Windows操作系统下广泛采用的TrueType字形库就是采用轮廓字形法。这种方法的优点是字形精度高,且可以任意放大或缩小而不产生锯齿现象。
图4.6 汉字字形码的表示方法
(4)其他汉字编码
1)GBK码
GBK(汉字内码扩展规范)码是中国制定的新的中文编码扩展国家标准。该编码标准兼容GB 2312—1980,共收录汉字21 003个,符号883个,并提供1 894个造字码位,将简体字、繁体字融于一库。
2)BIG5码
BIG5码包含420个图形符号和13 070个汉字,但不包括简化汉字。
3)Unicode码
Unicode码是统一编码组织于20世纪90年代制定的一种16位字符编码标准,它以两个字节表示一个字符,世界上几乎所有的书面语言都可以用这种编码来唯一表示,其中也包括中文。目前,Unicode码已经成为信息编码的一个国际标准,在它的65 536个可能的编码中,对39 000个编码已经作了规定,其中21 000个编码用于表示汉字。Microsoft Office就是一个基于Unicode文字编码标准的软件,无论使用何种语言编写的文档,只要操作系统支持该语言的字符,Office都能正确识别和显示文档内容。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。