汉字编码

更新时间:2023-04-13 20:17

汉字编码(Chinese character encoding )是为汉字设计的一种便于输入计算机的代码。由于电子计算机现有的输入键盘与英文打字机键盘完全兼容。因而如何输入非拉丁字母的文字(包括汉字)便成了多年来人们研究的课题。 汉字信息处理系统一般包括编码、输入、存储、编辑、输出和传输。编码是关键。不解决这个问题,汉字就不能进入计算机。

途径

汉字进入计算机的三种途径 分别为:

①机器自动识别汉字:计算机通过“视觉”装置(光学字符阅读器或其他),用光电扫描等方法识别汉字。

②通过语音识别输入:计算机利用人们给它配备的“听觉器官”,自动辨别汉语语音要素,从不同的音节中找出不同的汉字,或从相同音节中判断出不同汉字。

③通过汉字编码输入:根据一定的编码方法,由人借助输入设备汉字输入计算机。

机器自动识别汉字和汉语语音识别,国内外都在研究,虽然取得了不少进展,但由于难度大,预计还要经过相当一段时间才能得到解决。在现阶段,比较现实的就是通过汉字编码方法使汉字进入计算机。

原因

汉字编码的困难点 汉字进入计算机,有许多困难,其原因主要有三点:

①数量庞大:一般认为,汉字总数已超过6万个(包括简化字)。虽有研究者主张规定3000多或4000字作为当代通用汉字,但仍比处理由二三十个字母组成的拼音文字要困难得多。

②字形复杂:有古体今体,繁体简体,正体异体;而且笔画相差悬殊,少的一笔,多的达36笔,简化后平均为9.8笔。

③存在大量一音多字和一字多音的现象:汉语音节416个,分声调后为1295个(根据《现代汉语词典》统计,轻声39个未计)。以1万个汉字计算,每个不带调的音节平均超过24个汉字,每个带调音节平均超过7.7个汉字。有的同音同调字多达66个。一字多音现象也很普遍。

分类

计算机中汉字的表示也是用二进制编码,同样是人为编码的。根据应用目的的不同,汉字编码分为外码交换码、机内码字形码

1.外码输入码

外码也叫输入码,是用来将汉字输入到计算机中的一组键盘符号。常用的输入码有拼音码、五笔字型码、自然码表形码认知码、区位码和电报码等,一种好的编码应有编码规则简单、易学好记、操作方便、重码率低、输入速度快等优点,每个人可根据自己的需要进行选择。

2.交换码(国标码)

计算机内部处理的信息,都是用二进制代码表示的,汉字也不例外。而二进制代码使用起来是不方便的,于是需要采用信息交换码。中国标准总局1981年制定了中华人民共和国国家标准GB2312--80《信息交换用汉字编码字符集--基本集》,即国标码。

区位码是国标码的另一种表现形式,把国标GB2312--80中的汉字、图形符号组成一个94×94的方阵,分为94个“区”,每区包含94个“位”,其中“区”的序号由01至94,“位”的序号也是从01至94。94个区中位置总数=94×94=8836个,其中7445个汉字和图形字符中的每一个占一个位置后,还剩下1391个空位,这1391个位置空下来保留备用。

3.机内码

根据国标码的规定,每一个汉字都有了确定的二进制代码,在微机内部汉字代码都用机内码,在磁盘上记录汉字代码也使用机内码。

4.汉字的字形码

字形码是汉字的输出码,输出汉字时都采用图形方式,无论汉字的笔画多少,每个汉字都可以写在同样大小的方块中。通常用16×16点阵来显示汉字。

5.汉字地址码

汉字地址码是指汉字库中存储汉字字形信息的逻辑地址码。它与汉字内码有着简单的对应关系,以简化内码到地址码的转换。

类型

据粗略统计,现有400多种编码方案,其中上机通过试验的和已被采用作为输入方式的也有数十种之多。归纳起来,不外5种类型:

①整字输入法:

前一阶段,一般是将三四千个常用汉字排列在一个具有三四百个键位的大键盘上。大多是将这些汉字按XY坐标排列在一张字表上,通常叫“字表法”,或“笔触字表法”。比如,X25行和Y90列交叉的字为“国”,当电笔点到字表上的“国”字时,机器自动将该字的代码2590输入。键盘上或字表中字按部首或按音序或按字义联想而排列。不常用的字作为盘外字或表外字,另行编码处理

②字形分解法

将汉字的形体分解成笔画或部件,按一定顺序输进机器。笔画一般分成 8种:横一、竖(丨)、撇(丿)、点(丶)、折(□)、弯(□)、叉十、方(口)。部件一般归纳出一二百个。由于一般键盘上只有42个键(包括数字和标点),容纳不下这么多部件,因而有人设计中键盘,也有人利用部件形体上的相似点或出现概率的不同,而把100多个部件分布在26个字母键上。

③字形为主、字音为辅的编码法

这种编码法与字形分解法的不同在于还要利用某些字音信息。如有的方案为了简化编码规则,缩短码长,在字形码上附加字音码,有的方案为了采用标准英文电传机,将分解归纳出来的字素通过关系字的读音转化为拉丁字母

④全拼音输入法

绝大多数是以现行的汉语拼音方案为基础进行设计。关键问题是区分同音字,因而有的方案提出“以词定字”的方法,还有的方案提出“拼音-汉字转换法”,即“汉语拼音输入 ──机内软件变换(实为查机器词表)──汉字输出”系统。

⑤拼音为主、字形为辅的编码法

一般在拼音码前面或后面再添加一些字形码。拼音码有用现行汉语拼音方案或稍加简化的,还有的为了缩短码长而把声母和韵母都用单字母或单字键表示的“双拼方案”或“双打方案”。如F键既表声母F,又表韵母ang,连击两下,便是Fang“方”字。区分同音字的字形码也多种多样。除了大部分采用偏旁部首的信息外,还有采用起末笔或采用语义类别的。

上述各种编码法,各有短长。例如,字表法的特点是一字一格(键),无重码直观性好,操作简单。缺点是需特制键盘,速度较慢。字形分解法的好处是按形取码,不涉及字音,因而不认识的字(包括生僻字古字)也同样可以编码输入;但汉字形体结构非常复杂,写法也有许多差异,分解标准不易统一,因而不少方案规则较多。拼音输入法(包括拼音-汉字转换法)的优点是操作简捷,可以“盲打”,不受汉字简化、字形改变的影响,符合拼音化方向,并且还便于作进一步信息处理;缺点是不认识的字无法输入;另外,如果不加字形码或不用以词定字法或显式选择法,同音字较难处理。

双轨制

汉语拼音推广应用,并逐步过渡到汉字和汉语拼音文字并存并用,这是一种双轨制。汉字信息处理领域中,音码和形码的并存并用,同样是一种双轨制。因此,不少人认为,采用双轨制好,理由有以下5点:

①对掌握普通话的人来说,使用音码比形码方便,速度比较快。形码虽然较慢,但能输入任何汉字(包括古字)。采用双轨,操作员认识的字可按音输入,不认识的字按形输入,会普通话的人可按音输入,方音重的人可按形输入。

②对于用字量少的单位,按音输入无问题,但对用字量多的单位来说,按音输入就不如按形输入,因为一般人只能念出一部分汉字。

③按形输入(尤其是整体输入)对于中文信息处理的某类工作,如统计汉字,非常适合;但是对于其他类工作,例如统计汉语的音(声韵调)则无能为力。按音输入则正相反。双轨正好是相辅相成。

④有的形码可以照顾多种汉字(如日本的汉字、南朝鲜的汉字),而音码能分词连写,便于作进一步的信息处理。

⑤适当的双轨方案,不会增加设备上的麻烦。如不考虑采用整字输入,一般均可使用现有的小键盘

趋势

汉字编码研究的新发展 除了单轨双轨发展之外,还有下列趋势:

①混合式编码法。笔触字表示法中除整体字之外,增加一些部件或字元,可以解决盘外字问题,甚至能具有字形分解法的全部优点。而笔画方案为了提高速度,一般也增加一些部件或整字。

②充分利用简码和词汇码。这样可以提高输入速度。因而人们为少量出现频率高的字或词设计了单字母和双字母的简码。

词汇码也是提高速度的手段。有一种形码方案的词汇码是根据每个字的部件规定的,如“汉字编码”的词汇码是43、45、55、13(氵冖纟石)。另一种形码方案的词汇码是利用计算机引导方式输入的。例如,当“中”字输入后,一按语词键,屏幕上便显示出“中国”、“中型”、“中性”、“中华”等双音词;选择“中国”后,如再按一下语词键,便可显示出“(中国)话”、“(中国)人民”、“(中国)共产党、”、“(中国)工农红军”等词或词组。音码方案的词汇码实际上为词组码,如 ZRG“中华人民共和国”,ZZXY“中国中文信息研究会”。词汇码不仅能提高速度,而且也能区别同码。但是,如果用得太多,也会产生重码。因此,有必要划分通用词汇码和专业词汇码,以减少重码。

③充分发挥“电脑”的作用,尽量减少“人脑”的负担。上述计算机引导输入法就是一例。还有的方案不断以开窗口方式向操作员提供选择的范围。这样,操作员不必再记忆大量的编码规则。

定型标准

定型化

编码方案的定型化,即一般所说的选优工作,对计算机的普及应用非常重要。当然,定型或选优并不意味着只定一种或只选一种,而要照顾到多种用户的需要。关于选优,曾提出多种评定标准,一般包括字码无二义性、操作方便易学、输入和处理效率高、存储节省、传输可靠、设备经济实用、组词能力强。

标准化

编码方案繁多,需要有一个统一的标准。1981年,国家标准局公布了《信息交换用汉字编码字符集基本集》(简称汉字标准交换码),共分两级,一级3755个字,二级3008个字,共6763个字。这种汉字标准交换码是计算机的内部码,可以为各种输入输出设备的设计提供统一的标准,使各种系统之间的信息交换有共同一致性,从而使信息资源的共享得以保证。正在制定《信息交换用汉字编码字符集辅助集》,以满足少数用字量超过基本集的用户和台湾、香港等地的需要。

字符集

GB2312-80字符集,中文名国家标准字符集(GB=GuóBiāo国标)。收入汉字6763个,符号715个,总计7478个字符,这是大陆普遍使用的简体字字符集。楷体-GB2312、仿宋-GB2312、华文行楷等市面上绝大多数字体支持显示这个字符集,亦是大多数输入法所采用的字符集。市面上绝大多数所谓的繁体字体,其实采用的是GB-2312字符集简体字的编码,用字体显示为繁体字,而不是直接用GBK字符集中繁体字的编码,错误百出。

② Big5字符集,中文名大五码,是台湾繁体字的字符集,收入13060个繁体汉字,808个符号,总计13868个字符,普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台大多数字体支持这个字符集的显示。

GBK字符集,中文名国家标准扩展字符集(GB=GuóBiāo国标;K=Kuò扩,即扩展),兼容GB2312-80标准,包含Big-5的繁体字,但是不兼容Big-5字符集编码,收入21003个汉字,882个符号,共计21885个字符,包括了中日韩(CJK)统一汉字20902个、扩展A集(CJK Ext-A) 中的汉字52个。Windows 95/98简体中文版就带有这个GBK.txt文件。宋体、隶书、黑体、幼圆华文中宋华文细黑华文楷体标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU等字体支持显示这个字符集。微软拼音输入法2003全拼紫光拼音等输入法,能够录入如镕镕炁夬喆嚞姤赟赟䶮龑昳堃慜靕臹等GBK简繁体汉字。

Big-5 (台湾繁体字)与GB2312-80 (大陆简体字),编码不相兼容,字符在不同的操作系统中便产生乱码。文本文字的简体与繁体(文字及编码)之间的转换,可用BabelPad、TextPro或Convertz之类的转码软件来解决。若是程序,Windows XP操作系统,可用Microsoft AppLocale Utility 1.0解决;Windows 2000的操作系统,大概只有用:中文之星、四通利方、南极星、金山快译之类的转码软件方能解决了。

GB18030-2000字符集,包含GBK字符集和CJK Ext-A 全部6582个汉字,共计27533个汉字。宋体-18030、方正楷体(FZKai-Z03)、书同文楷体(MS Song)宋体(ht_cjk+)、香港华康标准宋体(DFSongStd)、华康香港标准楷体、CERG Chinese Font、韩国New Gulim,以及微软Windows Vista操作系统提供的宋黑楷仿宋等字体亦支持这个字符集的显示。Windows 98支持这个字符集,以下的字符集则不支持。手写输入法逍遥笔4.0版支持GB18030字符集及方正超大字符集汉字的录入。

⑤ 方正超大字符集,包含GB18030-2000字符集、CJK Ext-B中的36862个汉字,共计64395个汉字。宋体-方正超大字符集支持这个字符集的显示。Microsoft Office XP或2003简体中文版就自带有这个字体。Windows 2000的操作系统需安装超大字符集支持包“Surrogate更新”。

⑥ GB18030-2005字符集,在GB18030-2000的基础上,增加了CJK Ext-B的42711个汉字,共计70244个汉字。

⑦ ISO/IEC 10646 / Unicode字符集,这是全球可以共享的编码字符集,两者相互兼融,涵盖了世界上主要语文的字符,其中包括简繁体汉字,计有:CJK统一汉字编码20992个、CJK Ext-A 编码 6582个、CJK Ext-B 编码 36862个、CJK Ext-C 编码 4160个、 CJK Ext-D 编码 222个,共计74686个汉字。SimSun-ExtB(宋体)、MingLiU-ExtB(细明体)能显示全部Ext-B汉字。有 UniFonts 6.0 可以显示Unicode中的全部CJK编码的字符,输入法可用海峰五笔新概念五笔仓颉输入法世纪版、新版的微软新注音、仓颉输入法 6.0 版(单码功能)等输入法录入。Ext-C还有2万多个汉字。详情请参阅香港中文大学网站、马来西亚仓颉之友网站、福建陈清钰个人网站

汉字构形数据库2.3版,内含楷书字形60082个、小篆11100个、楚系简帛文字2627个、金文3459个、甲骨文177个、异体字12768组。可以安装该程序,亦可以解压后使用其中的字体文件,对于整理某些古代文献十分有用。

如果超出了输入法所支持的字符集,就不能录入计算机。有些人利用私人造字区PUA的编码,造了一些字体。一些如果没有相应字体的支持,则显示为黑框、方框或空白。如果操作系统或应用软件不支持该字符集,则显示为问号(一个或两个)。在网页上亦存在同样的情况。

参考书目

刘涌泉:《语言应用和现代化──中文信息处理研究》,载《语文研究》,1983,第1期,太原。

中国汉字编码研究会编:《汉字编码方案汇编》,科学技术文献出版社,北京,1979。

(刘涌泉)

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}