|
发表于 2004-12-24 13:02:56
|
显示全部楼层
节选看过的一点材料,是关于编码的。关于 locale 的再找吧
节选自 FreeBSD China 的版面,不知道是不是真的权威说法
GB18030 和 WAPI 是不是一样的东西?
另外,用 UTF-8 一到六字节的变长编码,其实也不错
“本文是北京市科委组织的桌面Linux操作系统项目的专家组的专家孙卫先生在和我交流探
讨的电子邮件中向我介绍的有关汉字编码的部分内容,经孙卫先生同意,允许我发表在我
们的论坛里。再次向孙卫先生表示感谢!”
原文节选如下:
中国文字的历史是5千年,根据我们现在在文献记载可以看见的大约是20万个各种各样的字
.1949年,为了扫除文盲和普及文化,在50年代-60年代根据最常用的字进行了两个重要的规
范,一个是对文字的读音进行拼音化标准,原来是四角号码和注音.另一个就是对1千多个常
用字进行简化,加上常用的不能简化的字,推出了国家一级字库,大约是几千个字.这两项改
革使得中国大部分人走上了脱盲的道路.在70年代上,计算机要使用汉字,标准和规范都是外
国和台湾的, 实际上主要是外国的.80年代开始,个人计算机大量在中国使用,国家规定了G
B2312的标准,在CCDOS上开始使用.GB2312在字形上是采用的中国国家颁布的汉字字形,全部
是有拼音的,但是在编码上,为了保证计算机上的使用,采用的是ISO2022的编码法则.对于当
时,不同的国家,只有标准字符集和标准符号集在ISO2022中,不同国家的编码区域是完全一
样的,但是在各自的文字区域是复用的,即,如果安装了GB2312就无法兼容安装日本的标准编
码.在80年代末期和90年代初期,海峡两岸的交流越来越多,却出现了在计算机上文字互补兼
容的问题,在90年代初期,制定了一个GBK的规范,就是在大陆的6763字后面,增加BIG5里面的
15000汉字的部分.这个部分是字型与台湾的字型是一样的,但是编码仍然是ISO2022.同时8
0年代末期,国际上已经开始重视文化在计算机上的交流,提出了国际统一码的概念,就是在
一个编码体系里面容下全世界的文字.针对这个倡议,世界各国组织了 Unicode委员会,同时
也制定了一个新的编码标准,就是ISO10646编码.由于90年代初期,认识的局限性,中国没有
积极的参与这个活动,日本, 韩国在第一个标准里面占据了大量的码位,后来成立了Super
C.J.K小组进行协调,在这个标准里面,把大陆,台湾的字型都放在里面的话由中国人占据的
码位是20902个,含了所有的GB2312,GBK, BIG5的字型字.90年代末期,中国政府在此基础上
,对于部分字型进行了处理和规范,形成了GB13000.1的标准文件,字型略有不同,但是编码是
采用ISO10646的编码体系.目前在大陆的微软系统用字是ISO10646的20902个汉字.Unicode
和ISO10646在初期的理论基础是不同的,Unicode认为字符编码应该是变长的,而ISO10646却
认为字符编码是定长的,并且用2字节码就可以把世界上所有的文字解决完.UTF- 8,UTF-16
,UTF32就是在Unicode的理论上形成的计算机信息格式编码.在ISO10646的前面几个版本,是
可以用USC2,和UTF- 8进行处理的.但是,在90年代末期,中国向Unicode委员会又提交了6千
多个汉字,ISO10646的编码体系最大只能放65536个字符,无法满足东亚语言新提交的字符要
求,所以ISO10646从3.0开始进行扩充,在原有编码基础上,对于还未用满的区域进行了扩充
,拓展了一部分到4字节,这样 ISO10646的编码空间从65536到了150万字符的容量.所以在后
来的ISO10646标准都是采用了变长码的原则,完全与Unicode重合了.这样Unicode和ISO106
46变成了等同的关系,目前已经到4.0了,一共有71000汉字.在4.0中一共是3个部分,基本级
20902, 扩充A6千多个,扩充B4万5千多个.回过来,在中国进行WTO谈判时,某些政府官员自己
认为要反对文化入侵,对于外国进入中国的信息系统进行限制,在仓促之间推出了GB18030-
2000,这个标准在ISO10646的基本集的20902字是用ISO2022进行编码的,对于扩充A的字是采
用的四字节码.但是在计算机实现上,不能ISO2022和ISO10646混用,如何解决了?微软就在表
现层是GB18030-2000的,在底层是 ISO10646的,用UTF-8处理.所有的多国语言问题都是这样
处理啦.目前在Unix和Linux的处理是,把6千多个4字节变换成2字节,在表现层和底层都用I
SO2022的标准.新的Linux的内核和X-Windows都支持Unicode的,所以,我们计划在新的计划
中,变成和微软一样的处理方法,使得底层是统一编码的,表现层是可以多编码转换的关系.
因为扩充B的4万5千多字无法转换成2字节编码啦(65536限制),所以今年将发布的 GB18030
-2003的新的和扩充B等同的部分使得Linux和Unix将付出新的代价.建议FreeBSD处理时最好
采用和微软公司一样的方法.一次解决后,只需做翻译码表,而不需要动底层了.当时我是国
家图书馆的总工程师向信息产业部质疑为什么GB18030-2000是强制性的,如何解决多国语言
问题?如何参加国际交流?现在教育部语言文字委员会开始研究ISO10646/Unicode/GB13000
的问题,因为康熙字典有52000字,大约有40000多个在V4.0中,中华大字典有5万多个字都在V
4.0中,2004年开始的第二代身份证也采用的是71000汉字体系,所以Unicode 4.0和ISO1064
6标准将成为最简单的处理中文信息并与国际接轨的方式.GB13000就是与ISO10646全兼容的
标准,也从未废止过. |
|