汉语编码文字——输入码与内码一致的汉字编码
范显镔
我们现在所使用的汉字编码,输入码与内码是不一样的。输入码是用字符串表示汉字,而内码是用长度为两个字节或两个以上字节的二进制数表示汉字。内码不包含对应汉字的声、韵、调、义诸信息。人们无法根据内码的值去联系一个汉字,即内码无可读性。这一点与拼音文字在计算机上的应用很不相同。使用拼音文字的人们,他们没有什么输入码和内码,或者说,他们熟悉的文字就是输入码也是内码,根据内码就能理解文字所表达的含义。因此在文字的输入、输出、存储、传输、排序、检索等文字信息处理各个方面都比我们方便,这点难道不值得我们借鉴吗?
汉字信息输入计算机必须使用汉字编码。那么我们为什么不使用输入码与内码一致的编码,并且在输入码中包含汉字的声、韵、调、义,直接输入计算机中作为内码而代表汉语呢?如果这样做了,我们一方面仍可在需要时将内码变换成汉字输出,另一方面也可根据内码字符串直接理解文字所表达的含义。这时内码可以认为是一种描述汉语的拼音表意的文字,以后叫汉语编码文字。汉语编码文字与汉字在我国并行使用,文字信息处理的效率就不再是被远远地抛在西方国家的后面,而是在不久的将来赶上并超过他们。
以前人们将人类的文字分为两大体系。
一个是表音体系。例如欧美的拼音文字。文字由几十个字母排列组合而成,字母只表音不表意。单个字母结构简单,笔画少。
另一个是表意体系。这种体系使用许多形状特殊的符号叫做字。由一个或几个字组成一个词,由词组成语句。字符间接地与它所表达的概念关联,即文字不通过语音独立地表达概念。文字系统庞杂,字数多,有些字结构复杂。笔画繁。这种体系的例子就是汉字。
现在的问题是,能不能将属于表意体系的汉字按一定的规则变换成表音体系的字母文字输入计算机,输出时再还原为汉字?这本来是汉字编码的初衷。可惜问题的答案是否定的。原因是汉字中有许多同音异形字。这些字变换后都成了相同的字符串,只保留原汉字的音的信息而丢失了原汉字的与字形相关联的字义信息,因此无法还原为汉字。现有的汉字编码输入法是启动特制的输入程序,根据
输入码显示一个汉字要求用户确认,在有重码时显示多个汉字要求用户选择。用户在输入过程中紧张地现场观察与现场分析,再用键击‘翻页’或‘选择码’的办法补充必要的信息,帮助输入程序确定要输入的汉字。然后查表出和这个汉字对应的一个特定的二进制数送入内存,这个数就叫内码。这种办法虽然也能实现汉字的输入输出,但内码变得不可读,又增加了许多不规范的手工操作,降低了效率,造成上千种汉字输入码,七、八种汉字内码在中国混用三十余年得不到统一的不利局面。
如果我们突破上述文字分为两大体系的观念的束缚,这样提出问题,能不能将属于表意体系的汉字按
一定的规则变换成拼音表意的字母文字输入计算机,输出时再还原为汉字?答案就是肯定的。这种字母文字在计算机中代表汉语,因此叫汉语编码文字。它不属表音体系,也不属表意体系,可以说它是又表音又表意的第三体系。怎么证明汉语编码文字是存在的呢?只要实际构造出这样的编码文字就行了。
假如我们将汉字‘妈’变换成字符串‘maa’,则记为:妈→maa
叫做一个变换式。对所有的汉字都设计一条变换式,并且规则右部要符合拼音原理又互不相同,则所有变换式的集合就叫做一个编码。用它做汉字输入时,变换式右部是输入码又是内码,这种内码可在计算机中作为一种文字使用,所以又叫汉语编码文字。
对上万个汉字都设计一条变换式并做到符合拼音标调规律、无重码、拼式又要尽量的短,是一件十分艰苦复杂的事。但当代汉语语音学、计算机科学、信息论、编码论等学科的发展已经为汉语编码文字的产生创造了条件,经过十多年的努力,我已经完成了一种叫作拼音表意码的汉语编码文字。拼音表意码变换式右部的结构有如下述。
一般一个汉字的目的字符串由三个字母组成,分别表示该汉字的声、韵、调(义)。第一个字母叫声位字母表示‘声’。如‘妈’的声位字母是m。声位字母的发音与《汉语拼音方案》大部分相同,只有3个字母做了重新规定,它们是:          v 在声位读 [zh](知),如 知→vic
w 在声位读 [ch](吃),如 吃→wia
y 在声位读 [sh](诗),如 诗→yia
此外,字母 i 也可以在声位,读 [i] (衣),如 压->iac;字母 u 也可以在声位,读[u](屋),如 威→uib。字母 o 在声位不发音,如 议→oit。
第二个字符表示‘韵’。所有的字母都可以放在这个位置上表示‘韵’,因此就要记住一些特殊规定,如
c 在韵位读 [ue](约),如 学→xcg
d 在韵位读 [ai](哀),如 白→bdi
g 在韵位读 [ang](昂),如 港→ggo
m 在韵位读 [an](安),如 满→mmo
v 在韵位读‘迂’,如 玉→ivs
x 在韵位读 [ian](烟),如 险→xxr
y 在韵位读 [ing](英),如 英→iyb
字母在韵位的读音规则总数有二十多条,这里尚未列全,只是举几个例子罢了。详细的读音规则将另作文发表。
第三个字符表示‘调’。a,b,c,d,e,f 六个字母表示读第一声,g,h,i,j,k,l 六个字母表示读第二声,m,n,o,p,q,r 六个字母表示读第三声,s,t,u,v,w,x,y,z 八个字母表示读第四声。例如
妈→maa    麻→mak    马→mao    骂→may  吗→ma (轻读)
因为每种声调都可用多个字母标调,所以这个字符还有定字表义的作用。如‘菊→jvh’和‘橘→jvg’都是第二声。菊是一种花,故用 h 标调;橘是一种果,故用 g 标调。在一般情况下,用排在前面的字母(a,g,m,s)标调有褒义,用排在后面的字母(f,l,r,y,z)标调有贬义。
对一部分出现频率较小的汉字,在上述三个字符后面可能还有附标。附标原则上是数字串,实际上常是一个数字。它和发音无关,只起定字表义的作用。如:  庸→iwd    镛→iwd1    慵→iwd3    墉→iwd5    鳙→iwd8
以上为了说明编码的构造举了不少变换式的例子。在实际将汉字输入计算机时,变换式是不必硬性记忆的。我编制了一个编码文字提示输入程序。当这个程序运行时,这些变换式都自动适时地显现在左边的提示窗内。记不住规则时不难在窗内到相应的规则,记得住规则时则可不顾提示窗内容的变化双手盲打。主屏幕上的显示也与众不同,是上下两行对照显示。上面一行显示你击键输入的字
母,下面一行是对应的汉字。这种对照显示方式随时都在帮助你记住编码规则。几小时的学习就可以独立操作输入汉字,熟练后平均2.8次击键输入一个汉字,可能是所有输入法中最快的。
下面叙述汉语编码文字的实用性,精确性,可读性,经济性和无限扩充性。
一、实用性。汉语编码文字最大的特点是它兼具表音的字母文字和表意的汉字二者的优点,同时又克服了二者各自的缺点。它的外部表示符号是ASCII字符,在计算机内部表达汉语仍然还是ASCII字符,与国际网络世界接轨。它可以做为汉字的拼写和注音工具;可做为输入码又可做为内码;又可做为汉语盲文,解决汉语明盲文字互通难题;还可以用于在计算机中对汉语词的排序与检索;也可用于汉语字典词典印刷版本的排序与检索以和计算机载字典词典电子版本的排序相一致。它可以翻译成汉字输出,也可以直接以字母的形式输出,用简单的字母打字机印刷在纸上。总之,以前中文信息处理遇到的不如西文信息处理的地方,现在通通都没有了。
二、精确性。自然语言发展的趋势是越来越精确。文字信息处理自动化也要求文字有相当高的精确性。《汉语拼音方案》只能是一种注音工具不能成为文字,就是因为它的精确性达不到要求。现有的各种输入码都有重码,即精确性达不到汉字的水平。然而编码文字无重码,两个字形不同的汉字必有不同的编码,这就意味着精确性达到了汉字的水平。字形相同但读音不同的汉字也有不同的编码,这就意味着精确性超过了汉字。总之,编码文字描述汉语的精确性是现有的各种编码所望尘莫及的,为
为什么不显示输入法汉语文字信息处理提供了十分有利的条件。准确地描述古文言文,区分简体字和繁体字,也是其精确性高的表现。
三、可读性。内码有可读性是编码文字区别于其他编码的主要特征。可读就易学易记。现有的汉字编码在输入时将输入码替换为二进制数,由于内码不可读,人们对这种内码永远也没有什么印象,必须翻成汉字后才能了解其含义。而编码文字将拼音字母直接送入内存,用户的多次使用,必然越来越熟悉。内码又可用字母的形式显示在屏幕上,人们逐渐的像中国人看到汉字或英国人看到英文那样产生语感。相当于中国人民除汉字外还掌握一种描述汉语的字母文字。其作用不仅是解决汉字输入问题,还反映在文字信息处理的各个方面都达到技术先进的国家处理拼音文字那样的水平。
四、经济性。汉字编码在满足了实用性、精确性、可读性的要求后,汉字的平均码长就是其经济性的主要衡量指标。编码文字采用多种创新的方法减少平均码长,如
a。用一个字母表示‘声’,而《汉语拼音方案》是用1或2个字母表示‘声’。    b。用一个字母表示‘韵’,而《汉语拼音方案》是用1到4个字母表示‘韵’。    c。所有的字母、数字都可用来标调,并且将标调和定字作用集中由一个字符来完成。
d。采用不等长编码。出现频率大的汉字用码长小于或等于3的码,出现频率小的汉字才用码长大于3的码。这样的设计有效地减少了平均码长。为使不等长的码能够连写在一起又在译码时能清晰地划分字
的界限,编码的第3个字符以后的字符(叫附标)必须是数字。此种设计使编码文字的‘分词连写’成为可能,减少了字与字之间的空格,不必使用隔音符,也是减少了平均码长。
e。轻声的字无标调字符,即码长为 2。而且,词尾轻读的字如‘的,子,儿,头,着,了,过’等,都用1个字母表示,即码长为1。
我编写了一个字频率统计程序,对总字符数为 1662448 的编码文字样本进行统计计算。统计表明,编码文字的平均码长为 2.8。又根据大量的汉翻英资料与英翻汉资料的统计计算表明,一个汉字翻成英语平均需要3.7个英文字母。而写成编码文字只须2.8个字母。因此,我们可以说,编码文字的效率比英语高24%。或者说,上述多种创新措施产生的综合效果就是使汉语编码文字的效率显著地高于英语。
五、无限扩充性。作为一般用途,五、六千个汉字基本上就够了。但中国的古籍、古诗、人名、地名中常有许多罕见的字,开展古籍整理出版、古汉语字典出版、户籍管理等工作时就常常需要扩充汉字集。编码规则右部第3个字符后面可能有附标,附标可以是数字串,就说明这种编码规则的个数可以是无限的。罕见的字出现频率很小,即使它们的码长大于3,码长与出现频率之积仍很小,不影响平均码长的值。我已经为13500多汉字编了码。编码的次序是,按出现频率由大到小。编码的原则是符合拼音规律,无重码,码长尽量的短。遵循这样的方法,即使将编码的汉字增加到七、八万以上,平均码长也不会大于3。像GBK码、Big-5码那样的等长码是做不到这一点的。