抓住机遇 构筑稳健的中文Linux系统( 二 )


国际化标准定义一组国际化的应用程序编程界面和用户界面 。
国际化主要包括用双字节/多字节编码代替单字节7位或8位编码,使用统一的大字符集ISO 10646,建立本地化数据库Locale DB,提供输入、输出服务(I/O服务)等内容 。
1. 用双字节/多字节编码代替单字节7位或8位编码
在国际化标准中,系统字处理中,必须以字符为单位,而不能以字节为单位 。字符既可以是单字节字符,也可以是多字节字符,所以彻底解决了半个汉字现象 。
由于历史的原因,计算机为了实现不同硬件和软件系统之间数据传输的标准化,是使用7位编码的,称为ASCII(American standard code for information interchange) 。ASCII是信息交换使用的美国国家标准编码,它是美国的标准 。ASCII字符集是用7个数据位表示的代码,它用二进制数值来表示ASCII字符,代码值的范围在0到127之间 。大部分基于PC的系统则使用八个数据位的扩展ASCII代码 。这样可以使用额外的128个字符代表一些特殊符号、外语字符、图形符号 。
通信软件的高位(第8位)是作为奇偶校验位,用来检测和改正通信错误 。这种7位有效位的假定,渗透到很多软件中,如电子邮件的实现 。
随着计算机应用的不断发展,7位编码已不够了 。虽然以后又使用8位的扩展ASCII码,但256个字符即使对使用拼音文字的单文种的国家的用户也是不敷使用了 。虽然用了7位或8位能覆盖基本字母,但还有多种多样的符号及印刷元素,其数量远大于256 。各国拼音文字的字母和各种符号就有一万个左右,汉字则有七八万之多,使用双字节(16位)编码,也只能标识65536个符号 。所以,如果想要计算机能使用多国文字,特别是使用汉字,则必须用双字节/多字节 。
如果说用两位数表示年是计算机的千年虫问题,那么用单字节编码ASCII处理字符则是计算机文字处理的“千年虫”问题 。但单字节编码的危害还没有引起人们足够的重视 。
国际化的首要工作就是在系统字处理中,必须以字符为单位,而不是以字节为单位,即用双字节/多字节编码代替原来的单字节编码,这就是用宽字符(wide character,为了统一地处理单字节字符和多字节字符,而采用统一编码宽度的字符的内部表示)代替单字节字符 。
2.使用统一的大字符集ISO 10646
使用统一的多八位大字符集ISO 10646是国际化的关键工作,也是国际化的核心工作 。十分遗憾的是很多人对其重要性认识不足 。
中国56个民族中使用汉字的人占绝大多数,有本民族语言的少数民族有17个 。这些民族的文字属性及字量相差很大,目前对不同民族文字采用不同的编码方式 。在中国使用人数最多的少数民族文字有七种:蒙古文、藏文、维吾尔文、哈萨克文、朝鲜文、彝文和壮文 。其中蒙古文、哈萨克文、朝鲜文还须考虑和使用这些文字的其它国家如蒙古国、哈萨克斯坦共和国、朝鲜和韩国使用的编码一致 。中文信息处理主要是汉字,但不只是汉字 。它也应该而且必须包括少数民族语言的文字处理这一重要组成部分 。这对加强民族团结、提高少数民族地区的经济、文化、科技发展,对于回击外国反华势力攻击中国不重视少数民族的谎言,都有十分重要的意义 。为了在一个计算机系统内同时处理汉字和多种少数民族文字,就必须使用既有汉字、又有各少数民族文字的统一大字符集 。
海内外华人使用的汉字有很大差异,这种差异不只是反映在简繁体和用词的不同,更重要的是编码和字符集不同,而要解决这个问题必须采用统一的大字符集 。而且,国际化的要求也使得大字符集的使用更为迫切 。

推荐阅读