找回密码
 注册
搜索
查看: 1346|回复: 7

【原创】庞大而杂乱的文字内码系统

[复制链接]
发表于 2005-11-10 07:29:59 | 显示全部楼层 |阅读模式
庞大而杂乱的文字内码系统

我虽然一直搞电脑,而且研究汉字处理,但对本文主题——文字内码,仍未能通晓。但觉得当前大字库内码系统,大而乱,应该研究采用尽可能小的小字库,让电脑键盘像普通笔一样,能自由写任何文字。我是在学习有关资料的基础上写这篇文章的,以我的理解,力求写得浅近,也可供入门者阅读。我的理解,尤其是我作的推论,如果有错误,请高手来信指正。地址:chancezoo@126.com

一、代码页:字库加编码

与拍电报要把文字转变为电报码一样,电脑处理文字,也要先转变为电脑能识别的信息交换码。电脑只能分辨用电压高低表示的0和1,所以毎一个文字的代码都是特定的二进制数。电脑的存贮是以8个二进制位为单位,叫做字节,通常表示为二个各由4个二进制位组成的十六进制字符(012……9AB……F),从最小值00到最大值FF(8个二进制位均为1,等于十进制255),只有256种不同的值,只能表示ASCII(美国信息交换标准代码)字符。实际上可显示的ASCII字符不到100个,开头32个是不能显示的控制码,如07为嘟一声,0A为换行,0D为回车,1B为键盘左上角的逃脱键。从空格20开始才是真正的ASCII字符,如30…39是十个数字0…9,41…5A是A…Z,61…7A是a…z。从20到7F的96个代码,每个都有一组数据,用来显示它所代表的字形。这些数据组成一个ASCII字库,只不过不如汉字字库那么大。可见,电脑一开始就用“字库加编码”的方法来处理文字的。我以前说,汉字植根于电脑的方法,一开始就错用了“字库加编码”的方法,这个说法不大确切,应该说是错用了大字库的方法。

从00到7F的128个代码,最高位为0,是基本拉丁字符,最高位为1的另外128个代码,是基本拉丁字符的扩展码,多为制表符等图形。英文以外的拼音文字,还有一些与拉丁字母不同的字母,它们也被安排在扩展码中。像中文那样,字符特多,更要两个以上这样的字节。总之,不同国家和地区的不同文字,编码安排不一样,字库内容不相同,分别用一个叫代码页的数值来区别。常见的代码页有:美国37,英国285,德国273,中国大陆(简体)936,中国台湾(繁体)950,日语932等。不过所有代码页中,都包含00……7F的基本拉丁字符。

               二、汉字的大字库

汉字数目太多,现在已有7万甚至10万的字库,可以说没有定数。这本不奇怪,英文字(词)的数量其实还要多10倍。只是他们不对这些巨量的字词编码和设计字模,而是让它们都由52个字母组成。我们的汉字也应该只对笔画、最多再加少量字根进行编码,其他汉字都由它们组成。可惜当时没有、也不可能解决笔画组字的技术,我们只能直接对汉字本身编码了。大陆第一个编码是1980年的国标码GB2312,共收录了7445个字符,包括6763个汉字和682个其它符号。由于

1、          字符数超过256,必须用2个字节;

2、          为了兼容基本拉丁字符,只能用高位为1的扩展字节;

3、          当字符送去显示时,过去计算机硬件和软件会把高位的1屏蔽掉,小于A0的32个高位为1的字节,就会变成控制码,所以要避开不用。

这样,每个字节只能用A0……FF的96个码位,除去首尾A0、FF这两个,实用A1……FE共94个码位。两字节码中高字节相同的组成一个区,区有区号;低字节对应同一区中94个位号;这就是字符的区位码。高字节值从A1……AF的前15区安排着制表符、注音符号、假名、希腊字母、俄文字母等。其中也包括另一套拉丁字母,不过它们每个字母与汉字一样,不但内码要两字节,显示时也占一个汉字的位置,即所谓全角字符,而原来的ASCII字符是半角字符,窄一半。真正的汉字区,内码范围:高字节从B0…F7,低字节从A1…FE。高字节从B0…D7(第16-55区)的40区3755个(最后5个空位)称为一级汉字,按拼音排序;D8…F7(第56-87区)的3008个是二级汉字,按部首排序;共占用的码位是72*94=6768。除了两级汉字中间有5个空位外,前15区中也有空位,87区后全空着,都可以按放自造字,不过自造字不能供其他人公用。

港台不仅用繁体字,而且编码完全不同。台湾原来有倚天、王安等多种编码,1984年宏碁等5个单位创立大五码Big5,高字节也限为A1……FE,低字节还增加4E……7E,收字数达13053。同一种文字,有不同的编码,必然要出现乱码:用甲码输入的字,按乙码去显示,自然会面目全非。所以,台湾发来的信件,全是乱码,必须进行内码转换后才能阅读。现在好了,浏览器、编辑器太多可以很方便地转换,如果出现乱码,可点一下鼠标换个内码试试。

不唯海峡两岸编码不同,同是大陆,都由国家制定,不同时期编码也不一样。且码本种类繁多,连名称也不容易搞清楚,我只说主要的,也不引用长长的全名。由于GB2312支持的汉字太少,1993年的GB13000.1增加到20902个,包括中日韩CJK三国的汉字。1995年的汉字扩展规范GBK1.0收录了21003个汉字。2000年的GB18030是取代GBK1.0的正式国家标准,收录了27484个汉字。这些字库都向下兼容,都包含GB2312的6763个汉字及其编码。为了容纳更多的汉字,内码高字节向上扩展到81,低字节向上扩展到40(以后进一步扩展到30),但不含7F,增加的汉字就插到新扩展区中。汉字至今还没有科学的排序方法,GB2312的两级字库,是按使用频数分的,已不是按同一标准排序,后增的更没有公认的次序了。使用者实难从众多无序的字库中找出需要的,这忙坏了输入法的研制者,即使“万马奔腾”也无满意的结果。

本来,有了大汉字库,应该不会写错字,最多写别字。可是最近网上揭示,发现了一些“电脑错字”。电脑错字与以前写错字不同,使用者不能纠正它。那是因为这个字的码位上放的字模错了,谁都得“将错就错”,一直错下去。其原因可能是字库设计者的错,也可能是字库文件的意外损坏。如果属后一情况,一般已不能成字,如果整个字模被抹去了,就成为空白。如果是字库文件损坏,常常换一个机子,或只换一种字体就正常了。还发现有汉字安排重覆的。更有输入提示栏对,显示却不正确;或输入是鱼字旁,结果变成角字旁等等。总之,由于字数太多,难免出错,出了错,也难找原因改正。

                      三、统一码杂而乱

我写了几篇文章,多次分析了中文信息处理采用大字库产生的许多问题,上一节只说明了其中的一点,即特大字库必然会杂而乱,难于维护与管理。想不到国际组织竟认同大字库方法。当互联网的发展,使全世界成为一个地球村时,各民族文字都要求、也应当一视同仁,能够在同一网页上显示。宇宙间的文字字形何止千万。于是有了统一码Unicode,总码位达20亿,目前还只用了一点点,可能几十年、上百年也用不光。设计Unicode的组织有两个,即国际标准化组织(ISO)和一个软件制造商的协会(unicode.org)。ISO开发了ISO 10646项目,Unicode协会开发了Unicode项目。在1991年前后,开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从Unicode2.0开始,Unicode项目采用了与ISO 10646-1相同的字库和字码。目前两个项目仍都存在,并独立地公布各自的标准。Unicode协会现在的最新版本是2005年的Unicode 4.1.0。ISO的最新标准是10646-3:2003。

统一码最多可用4个字节表示一个字符,称为UCS-4。UCS-4的最高字节的最高位为0,根据该字节的值分成2^7=128个类。每个类再根据次高字节分为256个平面。每个平面根据第3个字节分为256行,每行包含256个码位。 0类的0平面被称作基本平面, 简称BMP。或者说UCS-4中,最高两个字节为0的码位被称作BMP。将UCS-4的BMP去掉前面的两个零字节就得到了两字节的UCS-2。在UCS-2的两个字节前加上两个零字节,就恢复为UCS-4的BMP。目前的UCS-4规范中被应用的部分绝大部分还在BMP之内,它们是由各国申请决定的,像注册域名一样。已经有的统一码安排见本文末附表,这是我从软件BabelMap上抄下来的。

请仔细阅读这张表,看看能得出什么印象。该表按码位自然次序列出了已确定的133个字符区,各区所在的平面(USC-4的第二字节),区域名、该区的起止范围(第二到第四字节)、字符数及首次引入的Unicode版本。我在最后加了一列,是依次序排的区号,以便于叙述。我们先叙述该表的以下情况:

(1)该表只涉及第一类,即最高字节为0者,非0的127类完全没有动。第一类中也只涉及0、1、2、14、15、16这6个平面,另外的250个平面也没有动。

(2)各区大小相差悬殊。最大的除最末2区为65534,就是有42711个汉字的128区“CJK汉字扩展-B”,最小的只有16个码位,如64、78、102、104、109区。

   (3)区的实际大小,与实有字符数并不一定相符,有时相差还很远,即空位很多,如75区有空间128个码位,现在只有26个字符。

   (4)各区之间并不是都相互衔接的。第2和第14平面都只有两区,两区之间都有没用的空间。第1平面只有18区,它们之间也有很多不衔接的。0平面基本用光了,但它所有的109个区之间也有空隙,如11-12,35-36,40-41,70-71,74-75,77-78之间,而94到98区,相邻两区之间都有空隙。

(5)最后一个重要情况是,有些国家的文字,占着2个以上的区,而且,很多区是不相互衔接的。区数最多的是中文,共有18个区,包括76-79、82、84-86、88-92、95、99、105、128-129区。其次是朝鲜文、阿拉伯文、彝文,字符数目也比较多。拉丁文虽也占首4个区,但连在一起。

由以上5条能得出什么印象呢?首先,就算这6个平面都安排满了,也只占第1类的6/256≈1/43,只占全部空间的1/128*43=1/5504,没有动用的统一码空间可能够未来几个世纪的需要了。对这么大的空间,已有的安排只能说是刚刚开始,但一开始就很混乱。各国文字的字符数多少不一,一国的文字,特别是字符数多的,常有不同的层次,在不同的时间申请安排,就必然要相互犬牙交错了。这种混乱以后更要继承和发展,不可能纠正,因为码表一变动,过去信息化的成果就要付诸东流了。

                    四、小字库是方向

所以,大字库方法是不可取的。字库大,自然不能一次完成,建成后也难以适应以后变化了的情况,故不稳定。字库太大,安排字符编码时就易出错,设计字形更易出错,维护也困难。原来两岸汉字由于编码不统一,所以出现乱码。现在有了统一码,码是统一了,却又出现了“电脑错字”,而且是使用者发现错了也不能纠正的。可见大字库的研制和维护都很困难,又只能由专门人材进行。另外,使用者必须靠复杂的输入法软件才能使用,而编研这种软件的困难随着字符数的增加而增加。字库字数一扩充,对扩充的新字,老输入法是无能为力的。目前,硬件的发展虽然使系统中装全所有文字字库是可能的,但使用统一码最多可以同时阅读包含多种文字的文件,而要自己写文章时同时使用许多种文字,即使有这样的字处理软件,恐怕也没几人用得了,因为要同时掌握各种文字的输入法。我们知道要学会一种汉字输入法已不容易,要同时学会不同文字的输入法谈何容易。

大字库的另一个问题是效率低下。人类创造的字符难以计数,但不同字符的使用频度相差悬殊。汉字字数最多,即使以常用字4-5000个为基数,占基数千分之二的前8个字,使用总频度就占了一成,占基数百分之二的前100个字,使用总频度占了四成。英文也一样,字母E的使用频率占13%,而字母Z的使用频率要小200倍。如果能统计世界所有字符的总体使用情况,对比会更加强烈。但是,目前信息编码都是用等长码,UCS4都用4字节(32比特)。原来ASCII字符只要1字节(如果只有拉丁字母只要5比特)的,也要用4字节。现在实际上没让ASCII字符多化4倍,那是以增加其他字符的标志为代价的。我们仅以8比特为单位传送信息的UTF-8编码为例,看它是如何处理UCS-2的字符的。因为一字节的最高位为0是使基本拉丁字符作为单字节传送的特征,其他传送字节必须高位都为1。以前我们的国标码也是用2个高位为1的字节来表示,但这最多只能为128*128=16384个汉字编码(而现在在2字节的USC-2中,汉字占了近3万码位)。用过那时的DOS汉字系统的人都碰到过,由于高低两字节没有区别,如果文件中间丢了一个字节,那么其后的汉字就会错乱,前字的低字节和后字的高字节併成字,结果面目全非。所以如下表所示,UTF-8中要用110标志第一字节,用10标志第二字节,这样一来,2字节只能传1920种UCS-2字符,其余第12区以上的字符都要用3个字节来传输了,它的第一字节标志是1110。不幸得很,我们的汉字都处在12区之后,都要3字节。查11到12区之间还空1360个码位,我们应去抢注为汉字字根区。

UCS-2编码(16进制)   UTF-8 字节流(二进制)          字符总数

0000 - 007F         0xxxxxxx                           128

0080 - 07FF         110xxxxx 10xxxxxx                 1920

0800 - FFFF         1110xxxx 10xxxxxx 10xxxxxx       63488

拼音文字,如英文,其字库就是字母库,只有52个字符,非常小。英文字虽然上百万,死字一定也不少,没人用它,也不影响其他字的使用。另一方面,不论造多少新字,也不要什么输入法,只要会使用原来的52个字母便可。即使在字母不十分稳定的时期,例如发生一分为二或合二为一时,或增加新字母,甚或换一套全新的字母,都不影响原有存贮的历史资料。万一需要转换,也很容易。我的试验证明,汉字也可以用同样的小字库,即用与英文字母数目差不多的笔画库,为了方便最多再加一、二千个字根和常用字。这样一来,也没有输不进去的字,因为你可以依样画葫芦地拼出来。像用笔写错字一样,可能出现拼错,但这不是“电脑错字”,只存在于个别人的个别文章中,而且大部分还不会影响阅读。

既然汉字型文字像拼音文字那样可由笔画组成。进一步考虑所有拼音文字的字母,加上所有汉字型笔画,字符总数还是不少的。我们能不能再从它们中提取更少量最基本的,我暂称之为元笔画,以后只要这个元笔画库,就可组出世界上一切文字来。当然,不同文字可以有一套自己的字母、笔画或字根,学会该文字的人能使用它们。不懂该文字的,可以只用元笔画依样画葫芦地打出,最多字形不好看或不标准罢了。我们应该研究这样的系统,让电脑也像普通笔一样,可以自由地写出各种字形,而少受字库内容的限制。

             张时钊       2005.11.10
             http://www.chancezoo.net
             http://www.chancezoo.org

附表:     已经安排的统一码

平面   区域名                     范围起止       字符数  引入版本        区号

0      基本拉丁文                 000000—00007F    128  Unicode 1.0.0      1

0      拉丁文-1补充              000080—0000FF    128  Unicode 1.0.0      2

0      拉丁文扩展-A               000100—00017F    128  Unicode 1.0.0      3        

0      拉丁文扩展-B               000180—00024F    194  Unicode 1.0.0      4   

0      国际音标扩展               000250—0002AF     96  Unicode 1.0.0      5

0      进格修饰字符               0002B0—0002FF     80  Unicode 1.0.0      6

0      组合区分标志               000300—00036F    112  Unicode 1.0.0      7

0      希腊文和古埃及文(科普特文) 000370—0003FF    124  Unicode 1.0.0      8

0      西里尔文                   000400—0004FF    248  Unicode 1.0.0      9

0      西里尔文补充               000500—00052F     16  Unicode 3.2       10

0      亚美尼亚文                 000530—0005AF     86  Unicode 1.0.0     11

0      奥利雅文(Driya)          000B00—000B7F     81  Unicode 1.0.0     12

0      奥米尔文                   000B80—000BFF     71  Unicode 1.0.0     13

0      泰卢固文                   000C00—000C7F     80  Unicode 1.0.0     14

0      埃纳德文(Kannada)        000C80—000CFF     82  Unicode 1.0.0     15

0      德拉维族文(Malayalam)    000D00—000D7F     78  Unicode 1.0.0     16

0      僧伽罗文(錫兰文)         000D80—000DFF     80  Unicode 3.0       17

0      泰文                       000E00—000E7F     87  Unicode 1.0.0     18

0      老挝文                     000E80—000EFF     65  Unicode 1.0.0     19

0      藏文                       000F00—000FFF    195  Unicode 2.0       20

0      缅甸文                     001000—00109F     78  Unicode 3.0       21

0      格鲁吉亚文                 0010A0—0010FF     83  Unicode 1.0.0     22

0      朝鲜文字母                 001100—0011FF    240  Unicode 1.1       23

0      埃塞俄比亚文               001200—00137F    356  Unicode 3.0       24

0      埃塞俄比亚文补充           001380—00139F     26  Unicode 4.1       25

0      切罗基族文(Cherrokee)    0013A0—0013FF     85  Unicode 3.0       26

0      加拿大土著统一音节(UCAS) 001400—00167F    630  Unicode 3.0       27

0      欧甘文                     001680—00169F     29  Unicode 3.0       28

0      古北欧文(Rnic)           0016A0—0016FF     81  Unicode 3.0       29

0      他加禄文                   001700—00171F     20  Unicode 3.2       30

0      哈鲁喏文(Hanunoo)        001720—00173F     23  Unicode 3.2       31

0      Buhid                      001740—00175F     20  Unicode 3.2       32

0      Tagbanwa                   001760—00177F     18  Unicode 3.2       33

0      高棉文                     001780—0017FF    114  Unicode 3.0       34

0      蒙古文                     001800—0018AF    155  Unicode 3.0       35

0      林布文(limbu)            001900—00194F     66  Unicode 4.0       36

0      傣仂文(Tai Le)           001950—00197F     35  Unicode 4.0       37

0      新傣仂文(New Tai Le)     001980—0019DF     80  Unicode 4.1       38

0      高棉文符号                 0019E0—0019FF     32  Unicode 4.0       39

0      吉布文(Buginese)         001A00—001A1F     30  Unicode 4.1       40

0      音标扩展                   001D00—001D7F    128  Unicode 4.0       41

0      音标扩展补充               001D80—001DBF     64  Unicode 4.1       42

0      组合区分标志扩展           001DC0—001DFF      4  Unicode 4.1       43

0      拉丁文附加扩展             001E00—001EFF    246  Unicode 1.1       44

0      希腊文扩展                 001F00—001FFF    233  Unicode 1.1       45

0      通用标点符号               002000—00206F    106  Unicode 1.0.0     46

0      上标和下标                 002070—00209F     34  Unicode 1.0.0     47

0      货币符号                   0020A0—0020CF     22  Unicode 1.0.0     48  

0      符号用组合区分标志         0020D0—0020FF     28  Unicode 1.0.0     49

0      类字母符号                 002100—00214F     77  Unicode 1.0.0     50  

0      数字形式                   002150—00218F     49  Unicode 1.0.0     51  

0      箭头                       002190—0021FF    112  Unicode 1.0.0     52  

0      数学运算符号               002200—0022FF    256  Unicode 1.0.0     53  

0      混合技术                   002300—0023FF    220  Unicode 1.0.0     54  

0      控制图符                   002400—00243F     39  Unicode 1.0.0     55  

0      光学字符识别(OCR)        002440—00245F     11  Unicode 1.0.0     56  

0      括号型字母数字             002460—0024FF    160  Unicode 1.0.0     57  

0      制表符                     002500—00257F    128  Unicode 1.0.0     58  

0      方块元素                   002580—00259F     32  Unicode 1.0.0     59  

0      几何形状                   0025A0—0025FF     96  Unicode 1.0.0     60  

0      杂项符号                   002600—0026FF    175  Unicode 1.0.0     61  

0      装饰标志(丁贝符)         002700—0027BF    174  Unicode 1.0.0     62  

0      数学杂项符号-A             0027C0—0027EF     35  Unicode 3.2       63  

0      箭头补充-A                 0027F0—0027FF     16  Unicode 3.2       64  

0      盲文                       002800—0028FF    256  Unicode 3.0       65

0      箭头补充-B                 002900—00297F    128  Unicode 3.2       66

0      数学杂项符号-B             002980—0029FF    128  Unicode 3.2       67

0      数学运算符号补充           002A00—002AFF    256  Unicode 3.2       68

0      杂项符号和箭头             002B00—002BFF     20  Unicode 4.0       69

0      格拉哥里字母(Glagolitie) 002C00—002C5F     94  Unicode 4.1       70

0      古埃及文(科普特文)       002C80—002CFF    114  Unicode 4.1       71

0      格鲁吉亚文补充             002D00—002D2F     38  Unicode 4.1       72

0      提非纳文(Tifinagh)       002D30—002D7F     55  Unicode 4.1       73

0      埃塞俄比亚文扩展           002D80—002DDF     79  Unicode 4.1       74

0      标点符号补充               002E00—002E7F     26  Unicode 4.1       75

0      CJK部首补充                002E80—002EFF    115  Unicode 3.0       76

0      康熙部首                   002F00—002FDF    214  Unicode 3.0       77

0      汉字结构描述字符           002FF0—002FFF     12  Unicode 3.0       78

0      CJK符号和标点符号          003000—00303F     64  Unicode 1.0.0     79  

0      平假名                     003040—00309F     93  Unicode 1.0.0     80

0      片假名                     0030A0—0030FF     96  Unicode 1.0.0     81  

0      注音符号                   003100—00312F     40  Unicode 1.0.0     82  

0      朝鲜文兼容字母             003130—00318F     94  Unicode 1.0.0     83  

0      汉字注释                   003190—00319F     16  Unicode 1.0.0     84  

0      注音符号扩展               0031A0—0031BF     24  Unicode 3.0       85

0      CJK笔画                    0031C0—0031EF     16  Unicode 4.1       86

0      片假名音标扩展             0031F0—0031FF     16  Unicode 3.2       87

0      CJK括号型字母和月份        003200—0032FF    242  Unicode 1.0.0     88  

0      CJK兼容汉字                003300—0033FF    256  Unicode 1.0.0     89  

0      CJK统一汉字扩充-A          003400—004DBF   6582  Unicode 3.0       90

0      易经六十四卦象             004DC0—004DFF     64  Unicode 4.0       91

0      CJK统一汉字                004E00—009FFF  20924  Unicode 1.0.1     92

0      彝文音节                   00A000—00A48F   1165  Unicode 3.0       93

0      彝文部首                   00A490—00A4CF     55  Unicode 3.0       94

0      修饰性声调字母             00A700—00A71F     23  Unicode 4.1       95

0      Syloti Negri               00A800—00A82F     44  Unicode 4.1       96

0      朝鲜文拼音音节             00AC00—00D7AF  11172  Unicode 2.0       97

0      私用区(PUA)              00E000—00F8FF   6400  Unicode 1.0.0     98  

0      CJK兼容字符                00F900—00FAFF    467  Unicode 1.0.1     99  

0      字母变体显现形式           00FB00—00FB4F     58  Unicode 1.1      100

0      阿拉伯文变体显现形式-A     00FB50—00FDFF    595  Unicode 1.1      101

0      字形变换选择器             00FE00—00FE0F     16  Unicode 3.2      102

0      整排形式                   00FE10—00FE1F     10  Unicode 4.1      103

0      半形组合标志               00FE20—00FE2F      4  Unicode 1.1      104

0      CJK兼容形式                00FE30—00FE4F     32  Unicode 1.0.0    105

0      小写变体                   00FE50—00FE6F     26  Unicode 1.0.0    106

0      阿拉伯文变体显现形式-B     00FE70—00FEFF    141  Unicode 1.0.0    107

0      半形及全形字符             00FF00—00FFEF    225  Unicode 1.0.0    108

0      特殊区域                   00FFF0—00FFFF      5  Unicode 1.0.0    109

1      B类线形音节文字            010000—01007F     88  Unicode 4.0      110

1      B类线形像形文字            010080—0100FF    123  Unicode 4.0      111

1      爱琴海数字                 010100—01013F     57  Unicode 4.0      112

1      古希腊数字                 010140—01018F     75  Unicode 4.1      113

1      古意大利文                 010300—01032F     35  Unicode 3.1      114

1      哥特文                     010330—01034F     27  Unicode 3.1      115

1      乌加里特文                 010380—01039F     31  Unicode 4.0      116

1      古波斯文                   0103A0—0103DF     50  Unicode 4.1      117

1      犹太州大学音标(Deseret)  010400—01044F     80  Unicode 3.1      118

1      肖伯纳字母                 010450—01047F     48  Unicode 4.0      119

1      Osmanya                    010480—0104AF     40  Unicode 4.0      120

1      塞浦路斯音节               010800—01083F     55  Unicode 4.0      121

1      卡罗须提文(Kharoshthi)   010A00—010A5F     65  Unicode 4.1      122

1      拜占庭音乐符号             01D000—01D0FF    246  Unicode 3.1      123

1      音乐符号                   01D100—01D1FF    219  Unicode 3.1      124

1      古希腊音乐符号             01D200—01D24F     70  Unicode 4.1      125

1      太玄经符号                 01D300—01D35F     87  Unicode 4.0      126

1      数学字母数字符号           01D400—01D7FF    994  Unicode 3.1      127

2      CJK统一汉字扩展-B          020000—02A6DF  42711  Unicode 3.1      128

2      CJK兼容汉字补充            02F800—02FA1F    542  Unicode 3.1      129

14     语言编码标签               0E0000—0E007F     97  Unicode 3.1      130

14     字形变换选择器补充         0E0100—0E01EF    240  Unicode 4.0      131

15     私用区补充-A(SPUA-A)     0F0000—0FFFFF  65534  Unicode 2.0      132

16     私用区补充-B(SPUA-B)     100000—10FFFF  65534  Unicode 2.0      133
发表于 2005-11-14 13:43:20 | 显示全部楼层
张时钊老师研究的方向是非常正确的,我很赞成,国内几十万搞汉字输入的人都把研究的目标定位在汉字编码上,无疑是犯了方向性的错误,最起码研究的范围太窄了,“万码奔腾”不是件好事情,让人无所适从。很多人认为汉字输入电脑的问题基本已解决了,这简直是睁眼说瞎话,大多数的打字一族还是使用简单易学的拼音输入法,专业打字法使用人群的比例不过十之一二,文字输入的速度慢如蜗牛行步。拉丁文字的输入、输出、检索方法都是一致的,汉字的输入和输出没有多少关联,使用编码输入,不是危言耸听,用惯这种编码输入方法特别是用拼音输入的人,几年、十几年后不知还能写出多少个正确的汉字。不久的将来,大多数国人就会提笔忘字,离了键盘连一篇小文章都写不出,汉语在这样的国人手里还有生命力吗?张老师的研究方法是一个很好的思路,但即使以后张老师的元笔画、无字库的研究成为国家全力支持的汉字输入研究的方向,甚至完全达到了理想的目标,也只能在一定程度上较大地缓和了汉字众多痼疾中一个的严重症状。使用元笔画、无字库的方法输入汉字要比上编码输入的速度,输入方法还要简单,最起码不比编码难,字形要美观,这也太难了,不知张老师的研究是否已有大的突破。但完美的拼音文字要完全地取代汉字起码还要几十年甚至上百年的光阴,这种研究如能成功,还是有着极大的价值的。

汉字祛病化难的根本解决方法仍然只有将汉字更新换代成完美的易学易用的拉丁化新文字这唯一的通天大道。近一个世纪的拉丁化文字变革之所以未取得大的突破,是因为犯了根本性的大方向错误,自《汉语拼音方案》公布后到上世纪八十年代前的国家文改委完全是顽固、教条、反动地坚持“文革”的思路,其主要的目的就是用各种卑鄙、阴险的手段对汉字进行诬蔑甚至掘根,看看《二简字表》就知道把持国家最高文字改革权的机关搞的是一些什么惨不忍睹的货色。其目的昭然若揭,就是要彻底地废除汉字,用远不如汉字之万一的《汉语拼音方案》作为文字来取代汉字。在更名为语言工作委员会后,其掌权的一部分人仍然痴心妄想、不遗余力地以“一语双文”为口号力争为《拼音方案》改头换面的低级、弱智的猜想文字取得辅助文字的地位。在这样的国家文改机关的领导下怎能诞生一种尽可能完美的拉丁化拼音文字,所以现在文改的希望只能在民间。

我相信这种完美、易学的拼音文字方案的总体思路和构想很大可能性是来自民间,"有麝自然香",在今天网络的时代,谁又能阻挡、扼杀一种极完美、极易学、极易使用的拼音化汉字的蓬勃无比的极强大的生命力。历史的教训极深刻地表明,政治上的因素过多地掺合到文字改革的领域是弊大于利,自汉语拼音方案出台以来,国家政府就一直想在以后条件成熟的时候将之作为取代汉字的文字使用,一直到八十年代中期,国家语委才明确表明拼音不是正式的文字,是从属于汉字的注音符号,直到2000左右才在法律上规定拼音是从属于汉字的注音工具。但自汉语拼音方案出笼之日到八十年代中期,中国汉字拼音化的方向,就完全是极力想使汉语拼音方案成为正式的国家法定文字的方向,几十年都是一家独鸣,万马齐喑的局面。汉语拼音方案作为注音符号是完全称职的,但作为文字则很糟糕。矫枉不必过正,中国几十年汉字拼音化方向性错误的恶果,就是使汉语拉丁化改革蒙受很不好的名声,使今天汉语拉丁化改革的进程举步维艰,文字改革界的知名人士大都因受身名之累,对拼音化改革的方向三缄其口,谨言慎行,顾虑重重,不敢明确地表明自己的主张。痼疾缠身的汉字真的要为我们服务到一万年吗?我们的子孙后代会像我们今天痛骂那些满清的遗老遗少一样责怪今天的人们,在文字的更新换代方面迟迟没有作为,贻害无穷于我们的子孙后代。

[ 本帖最后由 乘风破浪 于 2005-11-14 16:31:28 编辑 ]
 楼主| 发表于 2005-11-15 12:10:17 | 显示全部楼层
答乘风破浪:您赞成我的研究方向,但不相信其可行性。您认为汉字缺点太多,拉丁拼音也不行,只指望民间设计的新文字,也就是五花八门的“拼音加意符(部首)”。我在“少争辩,多研究,发展中文”一文中已说明那也是不大可能的。这种新文字的设计像空白纸上画图,应该是比较容易的,确实也有很多了,可能比“万码奔腾”还热闹。但文字是要通过实际的使用才能成功的。本来互联网创造了过去不能有的好条件,却不见有一个这类新文字的实验网站,岂不永远是空中楼阁。我希望有一种这种文字,在小范围内试验成功,能用来取代世界语。但我认为它也不可能代替汉字。我现在还没有重大突破。但已确定笔画组字是行得通的。字体虽不好看,不过80年代初字库汉字也不好看呀。我现在还没精力改进字体,即使没法改进,占95%的高频字不到1500,也可用字库字。眼下我在研究汉字排序问题,这可能更关键,用组字原则解决这个问题,查字典和输入法也一起解决了。这样一来,除了表音差要另外改进外,汉字就只有优点了。
发表于 2005-11-15 16:29:07 | 显示全部楼层
1、但是现在的电脑,虽然都能处理汉字,都离不开庞大的汉字库,都是西文电脑,最后离不了英文。除不利于普及外,老外还有可能在英文软硬件中埋下窃听程序,不安全,我们应研制以汉字为第一语言的自己的真正的汉字电脑。

换句话说电脑的大脑是可以在较大程度上由以美国为首的使用西文的西方国家控制。西方国家是否可以利用西文电脑的软硬件的极大优势在很大程度上控制金字塔的塔尖的黄金产业即信息化产业系统的大脑中枢。这是因为使用汉字导致的心腹大患吗?

2、汉字在存储、传输过程中会出现乱码,影响可靠性。造成乱码的原因是,汉字内码和字库字模没有固定的一一对应关系,即:写入方的码本和读出方的码本不一致。

出现这种情况的严重性、危害性有多大?

3、英文字母集,元素少(52个),已稳定,可作为编码对象。与字母同类的是汉字笔画,但当时的软硬件技术又不能做到笔画组字。现在可以解决了,应该着手纠正这一错误。否则总有一天要触发“定量炸弹”:汉字编码集一有变动,过去数字化劳动的成果,会像世贸大厦一样被炸毁了。

汉字编码集肯定是要变动的,变动后的后果会是这样灾难性的吗?

请教张老师1、2、3里是您论述汉字编码的最大的隐患,当然您还列举了编码其他的大缺点,如:缺字问题,汉字太多,不管多大的字库也收不完,所以总有可能遇到字库里没有的冷僻字、地方字、异体字、宗教字、故意增减笔画的避讳字以及新造字,极大地限制了汉字造新字的能力;检索和排序等。如您的研究结论能证明以上三点中的一项能导致如此灾难性的后果,那么您的研究方向无疑是具有极大的价值和意义,甚至可以说是具有划时代的伟大的价值和意义。我不是搞电脑的,对这方面的知识不能使我很透彻地明白您指出的汉字编码的危害性到底有多大?我很关心这方面的知识,请您可否拨冗劳神解答学生这方面的疑问?

澄清一下:我是汉语拉丁化改革的坚决的支持者和实践者,我坚决、彻底地反对和抵制的是在《汉语拼音方案》基础上改头换面的一切所谓的这种形式的弱智、低级的猜想文字方案。如您说的那些大问题那么严重,那也只有汉语拉丁化才能根本性地解决这些可能导致灾难性后果的问题。

[ 本帖最后由 乘风破浪 于 2005-11-15 16:36:00 编辑 ]
 楼主| 发表于 2005-11-16 17:43:51 | 显示全部楼层
答乘风破浪:
1:我也是从网上或报刊上看到的,从病毒情况推测,这是可能的。
2:您没碰到过台湾来的文件是乱码的情况吗?到现在偶而还可遇见。我收到的EMAIL,有些换了几种内码,还是乱码。
3:我认为所谓“定时炸弹”就是这样产生的。目前编码尽力向下兼容,一般文字可能没有发生这种情况,但古文献里,由于冷僻字多,编码易乱,更会有自造字,这种情况有可能已发生,我不了解,是推想的。
我不知道您理想的拼音汉字是怎样的,除了字母加偏旁(意符),还有别的形式?

[ 本帖最后由 张时钊 于 2005-11-16 17:48:01 编辑 ]
发表于 2005-11-18 20:39:44 | 显示全部楼层
第二段是我发的主题帖子《汉语言文字是中华民族对人类最伟大的贡献!》里的一段,虽短短的一小段,但已涵盖了汉字改革的总体思路和构想,即由近四百个词根构成四五千新汉字,再由几千新汉字构成数十万以至数百万的词汇。说白了,就是在汉语的语意和语音作出取舍,中国大半个世纪之所以在文字改革上未有大的突破,是因为犯了根本性的大方向的错误,本末倒置,舍语意而一味地追求拼音文字的语音的优点上,最终的结果是既丢了西瓜又未捡着芝麻,在文字改革方面几十年停滞不前,最大的成果不过就是将笔画似的注音字母改进成拉丁化的拼音方案。

汉字改革万万不可舍弃汉字字形表意的极其巨大的优点,并且要极大地强化其表意的功能,这是完全可以做到的。通用的汉字90%以上是可以分门别类的,在字一级的单位下,现在已有八、九十个比较明确的表意形旁,这就等同于拼音文字的词根,还可以再整理、细分、改造一下,提炼出近四百个词根,使其表意更具体更明确,这些是大词根。实际上常用的汉字大部分都是构词的词根,可看作是大词根下较小一级的词根。现代汉语里这样的有道理的词已占到总词汇的百分之九十以上,通用的四五万词的比例就更高,由字母到词根再到字逐层逐级地构词,这样的词才有极强的逻辑性和道理,这才是真正意义上的意音文字。由于不是由字母直接地构词,极大地遏止了随意使用密码性字母的组合来构词的极严重的弊端,这样的文字才有极强的稳定性,历千秋万代也不会像现在的拉丁系文字那样容易发生分化。

[ 本帖最后由 乘风破浪 于 2005-11-18 21:22:32 编辑 ]
发表于 2005-12-2 11:13:46 | 显示全部楼层
想不到国际组织竟认同大字库方法。当互联网的发展,使全世界成为一个地球村时,各民族文字都要求、也应当一视同仁,能够在同一网页上显示。宇宙间的文字字形何止千万。于是有了统一码Unicode,总码位达20亿,目前还只用了一点点,可能几十年、上百年也用不光。

张时钊老师您想不到国际组织竟认同大字库方法。这有什么想不到,汉语的生死存亡和这些国际组织有啥关系,汉语两三百年以后像拉丁文这几种人类曾辉煌一时的已消亡的语言一样的悲剧性的命运,可能正中那些国际组织里部分人的下怀。人类语言被英语一统,不知炎黄子孙对未来的世界语言的这种大格局有何想法?那些国粹分子你们打着爱国爱汉语的旗号,糊里糊涂地成了扼杀汉语生命力的真正的帮凶。
发表于 2005-12-4 23:10:03 | 显示全部楼层
汉语如不能更新换代成完美的拼音文字,那她的悲剧性的命运甚至远不如拉丁语。拉丁语是虽死犹生、虽败犹荣,它的子孙血脉已很好地延续了它的生命。不很恰当地比喻一下,拉丁语的儿子或孙子、外孙或外重孙都是当今人类社会主流甚至是准世界语的大语种:法语、西班牙语、意大利语等语种相当于是儿子或孙子,英语就好像是它的外孙或外重孙。人类历史上,中国是五大文明发源地之一,人类社会最早成体系的语言除了汉语还有两河流域苏美尔人的楔形文字、尼罗河流域古埃及的圣字书、美洲的玛雅文字、印度梵文。这孕育了人类文明的五大源头,只有汉语言文字文化直到今天还是活泼泼地源源不断地滋育着人类辉煌灿烂文明的源泉,其他的四大源头一两千年前就枯竭了。

不是危言耸听,人类硕果仅存的最古老而又最伟大的汉语言文字在很大的可能上正面临着像人类最早的其他的四大语言文化一样的悲剧性的命运,炎黄子孙如迟迟不能将汉字改革成完美的易学易用的拼音文字,那么几百年后,汉语不仅自己形神俱灭,也很难或几乎不可能孕育出伟大的子孙血脉,后人只能从历史的故纸堆中追忆她恍如隔世的容颜。不要愧对创造了最古老最伟大的汉语言文字的我们的祖先,不要愧对我们的子孙后代,中华民族只有唯一的一条正确的通天大道:举全国、全民之智之力,全力以赴地实现汉语言文字更新换代的伟大目标和理想!

下面简述一下英语、法语、西班牙语、意大利语和拉丁语的渊源:拉丁语族共同母语是拉丁语,它曾经是幅员广阔的罗马帝国的通用语言。罗马帝国衰亡后,各地的拉丁语方言在彼此隔绝的状态下相继发展,最终形成了各种独立的近代的好多种文字,包括意大利语、法语、西班牙语、葡萄牙语等。

以下内容摘自冯志伟的文章:

1066年法国入侵,法语成为官方语言,法语属罗曼语族,与英语不是同一个语族,英语吸收了大量的法语词汇,语法上也受到了法语的影响。在法国入侵之后,英国实际上存在着3种语言:法语是官方语言,拉丁语是宗教语言,英语是社会下层使用的语言。后来由于政治上的历史变动,英语逐渐成为官方语言,学校开始教英语,英语成为了英国的全民共同语。在英语上升为官方语言的过程中,吸收了大量的法语借词,公元1250年-1400年的150年内,约有10000个法语词汇进入了英语,75% 至今还在使用。

由于基督教会的影响,拉丁语词汇也大量进入英语,使得英语的同义词大量增加。例如,同是表示“火” 的三个词,fire来自英语,flame来自法语,conflagration来自拉丁语;同是表示“问”的三个词,ask 来自古英语,inquire来自法语,interrogation来自拉丁语。

文艺复兴时期对古希腊、罗马文化的研究,大量的拉丁语、希腊语词汇涌入英语。例如,arithmetic(算术),grammar(语法),logic(逻辑)来自希腊语, arbitrator(仲裁人), executer(执行者), item(条款)来自拉丁语。这些情况,使得在现代英语中,借词占了 80% 的比重,这些来自不同语言的大量借词,减少了同形词和同音词产生的机会。

[ 本帖最后由 乘风破浪 于 2005-12-04 23:47:40 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|中语书院

GMT+8, 2026-9-4 20:27 , Processed in 0.036292 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表