我说的不是输入码,而是汉字内码。二十年前,两岸文字不只是简繁不同,而是更严重的内码不同,软件不配套时,会显示一堆乱码,要经过内码转换才能阅读。现在中日韩所有汉字都统一在统一码Unicode中,没有乱码问题了,而且可以简繁转换。但是问题并没有完全解决。按Unicode的计划,要把世界上所有文字都纳进来,任何一个不同的字形,都有一个唯一的内码,完整的内码要4个字节,可容纳20亿个码位。因为世界上到底有多少种文字,复杂的如汉字到底有多少个字,都不能一次确定,妥善安排,只能由各个国家或地区分次申请注册。汉字已申请到7-8万个码位,但不是连成一片,而是割裂成许多段。字太多了,容易出错,有网友发现所谓的“电脑错字”,也有重复的。更难的是输入法,如何从近十万个汉字中选取您需要的。最后,还是有缺字,尤其缺一些人名用字,使不少人办不了第二代身份证。有一本电子书“国学备览”,就要用一千个图片,用来显示字库里没有的汉字。这说明用扩大字库的方法是不能解决问题的。于是Tom Bishop 和 Richard Cook提出汉字描述语言CDL,据说他们就在Unicode工作的。使用CDL,任何汉字都可以用比它简单的汉字或部件,最后都可以用笔画组出。
比较一下中文和英文,英文字(词)虽然上百万,电脑里也永远不会缺字。原因在于:他们不是对字而是对字母编码的。字是开放的,可以任意造新字,且有自然的字典序。我们也改为对笔画编码,行吗?英文字母是线性排列的,汉字笔画是平面排列的,有可能笔画序列相同而汉字不同,怎么办?这个问题以及笔顺等等,都可以加一些约定来解决,难解决的还是汉字笔画数(平均10-11)比英文字母数(平均5-6)大一倍,码太长,也不直观。如果改为对部件编码,部件又太多。能不能将部件归并成100类,每类定一个高位为1的字节作为内码,只有该类内出现频率最高的部件直接用该码,其他部件则另加一个数码来分辨。这样,使两个高频部件的10000个组合能够囊括两千左右高频字,每字两字节。其他低频字,码长些,击键次数多一些也没有关系。这需要摸索试验,如果成功,输入码与内码相同,自然排序也有了,而且永不缺字,所有问题都解决了。为此,如果需要对常用字形作少量改变或限制,也是值得的,文字工具的改变引起汉字形态的一些变化,历史上就发生过,是正常现象。