|
我看汉字编码与中文系统
幼虫
关于汉字编码与中文系统的文章已经很多了,能说的似乎都已说完了。但本文却试图从一个新的角度来探讨这个老的话题,对或不对心中无数,请大家指点。 一、疑问 如今研究汉字编码的人不少、研究出的汉字编码不少、甚至讨论汉字编码得失的文章都不少,而所有的人研究的是汉字输入编码、所有研究出的编码是汉字输入编码、自然所有的文章讨论的也是汉字输入编码,可谓万众一心,一时间神州大地但见万码奔腾各显其能却又能殊途同归异曲同工。对于这种千军万马过独木桥的现象,我在惊叹英雄所见略同的同时,不由得也产生几个疑问--汉字编码中只有输入编码值得研究吗?除了输入编码外还有必要为汉字设计其它编码吗?关于汉字还有哪些方面值得关注呢? 二、担心 为了解答这些疑问,让我们先来看看与汉字编码密不可分的中文系统。中文系统由硬到软的发展,特别是WPS的出现,直接导致专用的中文打字机基本上退出了市场,然而以WPS为中心的中文系统比中文打字机又能多干些什么呢?WPS无疑是中文系统中的一个突破,很难想象一个不包括WPS的DOS版中文系统能获得成功,一时间WPS已成为中文系统的代名词。然而自WPS后中文系统便再没有什么让我们感到耳目一新的东西了!所有人似乎都更关注中文系统的性能而不是功能了,于是满耳都是:设备无关性、零内存占用、直接写屏等等,殊不知性能再好也只不过是一幅名画外面漂亮的镜框而已。注意研究一下大多数中文系统的说明我们不难得出结论--一个好的中文系统所需要提供和能提供的功能不外乎输入、显示、打印以及一堆与中文无太大关系的小工具。以是说的都是基于DOS的中文系统,基于WINDOWS系列的外挂式中文系统(下简称外挂)又如何呢?外挂由于缺乏象WPS这样有影响力的程序,在内核汉化面前处境更为不妙,好比开在旅馆门口的饭店,当旅馆尚不供应饭菜时生意尚可,现在旅馆发展为大酒店,吃住行一条龙服务,岂能容你虎口夺食。由于外挂支持双内码,目前尚有市场,但等到微软采用包括多国文字的大字符集,情况又将如何? 三、观点 那么还有没有必要搞中文系统或者说中文软件了呢?有种意见认为软件是共通的,没有必要专门去搞中文软件云云。我很同意他们的分析却很难赞同由此得出的结论,正如所有的人都知道足球比赛的胜负取决于双方实力的对比,但并没有人因此小看或放弃主场。的确软件是共通的,正如一加一永远等于二,只不过美国人说“TWO”中国人说“二”而已。无论“TWO”或“二”都只不过是人为定义的符号,之所以有意义是因为它们载有一定的信息,也就是说文字是信息的载体,而计算机处理信息事实上处理的是信息的各种载体,文字就是其中较重要的一种。那么中文这种五千年文明的结晶、古老的象形文字在计算机处理中与外文相比就没有什么不同吗? 四、不同 文字信息的重要性是人所共知的,所以几乎所有的高级语言都对字符或字符串给予足够的重视,有专门的字符(串)类型以及数不清的字符(串)函数、命令等等,然而几乎所有这些针对字符(串)的设计均不完全适用于中文,这一点相信搞过程序设计的都有体会。当然程序员们并不在乎,他们有办法解决,何况程序设计并不是普通用户关心的问题。让我们来看另一种情况,数据库应用也许是信息处理中更重要也更普遍的一种情况,对于数据库来说同样存在高级语言一样的情况即缺乏专门针对中文的数据类型和函数。其次,作为数据库重要的功能之一当你对信息进行索引、排序时,你会发现所有的软件都能方便地对西文、数字、日期进行索引和排序,对于汉字则大多数软件都无法得出有实际意义(你想要的)的结果。(微软公司的Visual FoxPro 3.0中文版 也许是唯一的例外,它能对中文信息按拼音或笔划索引和排序,但这个消息对我们来说不知是好消息呢还是坏消息?由于无法得到VFP5.0中文版所以不知是否有新进展,当然本人未接触到的软件中也许尚有例外)那么汉字是否有序呢?让我们来看一些例子--在会议或其它使用姓名的场合我们通常以姓氏的笔划来排序;在《新华字典》中正文以汉字的汉语拼音排序并辅以偏旁部首和拼音的索引;在某些《辞海》中以偏旁为序;也有某些字典以汉字的韵母为序等等。可见汉字这种与拼音文字截然不同的象形文字与西文相比有它自身的规律,那就是每个汉字都具有笔划、笔顺、偏旁部首、汉语拼音等各种属性,而这些属性是对汉字信息进行排序、索引等处理的关键。再次,对于使用最高的查找功能似乎尚无软件有专门针对中文的设计, 由于外文为拼音文字所以很容易实现模糊查找,拼不出“software”输入“soft”就能缩小范围便于查找。中文难到不需要模糊查找功能吗?假设需要在户籍数据库中查找一个人的资料,只知道此人名叫Wang Hang 却不知道具体是哪两个字,能否有办法列出所有叫王杭、王航、王行等所有读音相同或相近的人?能否让计算机也知道“行”这个字有多种读音并根据情况灵活处理呢?若能做到这些无疑是非常有用的,因为一字多音和多字同音(或近音)在汉字中是非常普遍的,解决好这个问题在中文信息处理中具有重大的意义。 五、结论 中文这种古老的象形文字和拼音文字有着截然不同的特点,因此在信息处理的过程中也有独特的地方,这正是我们应该研究的。在信息输入、处理、输出三个环节中处理无疑是最重要的,而几乎所有的人(编码和中文系统)都把目光投向输入和输出,却无人关注输入以后、输出之前我们应干些什么,难道那不正是输入和输出的目的所在吗?在处理中文信息时,现在对于每个汉字程序所能得到的信息仅仅是它的内码,通过内码除了可以唯一地确定一个汉字外,我们无法得到有关这个汉字的任何有用的信息。这种情况正如身份证上的号码,可以唯一地确定一个人却无法知道此人的性别、身高、体重以及简历等等,当然我们可以通过身份证上的号码去有关部门查阅档案从而得知各种详细信息。那么我们能否为每个汉字也建立一个详细的“档案”呢?这样当我们在汉字信息处理中,在必要时可以通过汉字内码查阅汉字的“档案”,从中抽取出所需的信息进行种各种处理,从而实现各种功能。然而用什么方法实现汉字“档案”呢?能不能用汉字编码的办法为每个汉字建一份详细的“个人档案”呢? 六、尝试 汉字编码不是实现汉字“档案”的唯一方法,肯定也不是最科学、最完整、最有效的方法,但却可能是最简单直接的方法,所以我尝试用汉字编码的方法来实现我为每个汉字建一份“个人档案”的设想。现在我的尝试初步有了一些结果,我管这种专为汉字信息处理而设计的编码叫作“汉字多态码”,它是一个32位的编码,通过它我们可以轻易得知每个汉字的笔顺、笔划、偏旁、声母、韵母、音调,并且能够处理一字多音、多字同音和多字近音(即读音相近)的情况。然而它尚不能有效地解决字形相近(例如:“未”与“末”)的问题,另外由于我对汉字的了解深度和知识面有限必然会遗漏一些重要的汉字属性,殷切希望各位专家及对此有兴趣的人来信给予指点。 七、希望 总之只要我们把着重点放在中文信息的处理过程中,中文软件还是大有可为的,毕竟计算机是一种用来处理信息的工具。所以:我们希望编码工作者能从输入编码的怪圈中走出来,更多地把眼光投向中文信息处理的各个方面,使汉字编码--这种中国文字的第二种形式,能更科学、更全面、更系统地反应出汉字各方面的特点,使之能适用于中文信息处理的各种需求、各个方面、各级层次;我们希望中文系统厂商能更多地注重中文系统的功能而非性能,重点放在在各种编码的基础上开发对中文信息进行各种处理的标准函数和功能调用,并努力使其标准化,从而使标准的中文功能与具体的编码(或其它实现方法)隔开,这样使用标准中文功能而开发的软件在任何中文系统的任何编码(或其它实现方法)中均能正确运行,而编码或实现方法的变更也不会对程序有太大的影响;我们还希望有更多的人来关注中文软件,从更多的角度来分析研究中文软件,开发出更多有实用价值的中文软件,从而为民族软件产业付出自己的努力。
((注:本文已蒙计算机世界报市场版中的观点俱乐部栏目于97年第32期刊用,刊用时编辑有删改,本人不敢掠人之美,此为原稿),2000-11-20)
|