中文化和国际化问题权威解析

上传人:jiups****uk12 文档编号:90748769 上传时间:2019-06-15 格式:DOC 页数:42 大小:409.51KB
返回 下载 相关 举报
中文化和国际化问题权威解析_第1页
第1页 / 共42页
中文化和国际化问题权威解析_第2页
第2页 / 共42页
中文化和国际化问题权威解析_第3页
第3页 / 共42页
中文化和国际化问题权威解析_第4页
第4页 / 共42页
中文化和国际化问题权威解析_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《中文化和国际化问题权威解析》由会员分享,可在线阅读,更多相关《中文化和国际化问题权威解析(42页珍藏版)》请在金锄头文库上搜索。

1、中文化和国际化问题权威解析之一:字符编码发展历程作者序在我开发Java程序的几年中,遇到得最多,也是别人向我提问最多的问题,就是各种各样看似稀奇古怪的中文乱码问题了。网上也有许多解释和解决Java中文问题的文章,但水平参差不齐,有一些文章甚至是错误的。此外,我们公司自己的Java程序从一开始就采用了错误的方式处理中文问题,虽能解一时之急,却引出了越来越多的深远的问题。每当我听到有的同事还在讨论如何特殊处理双字节的中文GB码,就感慨他们思路的狭隘。试问,今天我们可以用特殊的方式处理我们所熟悉的中文编码,可是今后我们怎样才能应付日文版、韩文版、或世界其它国家语言的产品开发呢?在我看来,与其说这些问

2、题是“中文化问题”,不如说是“国际化问题”。所谓的“汉化”这 种说法已经随时代远去了。想想看,这个词带有明显的小农经济的色彩:自家汉化自家用,哪管世界变化多。经过汉化的软件,常常意味着:版本落后、不兼容、不 稳定。为什么会这样呢?根本原因是,从软件的设计阶段,就没有考虑国际用户的需要,没有采用国际通用的标准。事后要弥补自然难上加难。所以让我们把眼光放开,想一想“国际化”。当然国际化的目的还是生产出“汉化”的软件,但我们可以用同样的方法“韩化”、“日化”、“阿拉伯化”,统称为“本地化” 这就是“国际化”的目的。国际化和本地化有两个很体面的英文缩写:I18n(Internationalizatio

3、n)和L10n(Localization)。想要开发出国际化的软件产品,首先要了解国际标准,而不是使用东拼西凑的权宜之计。本文首先从相关国际标准的讨论切入,相信正确地理解和应用这些标准,所有的“中文化问题”或“国际化问题”都会迎刃而解。字符编码简介ASCII码从学计算机的那天开始,老师就告诉我们在计算机里面,所有的英文字母都对应到一个数字编码,这就是ASCII码(American Standard Code for Information Interchange)。ASCII码是很久很久以前(1968年)制定的。它只使用了一个8位字节中的低7位,总共是127个编码位。这样的方案很快就不够使用了

4、。单字节编码的发展在80年代早期,一些现在流行的标准(如ISO 8859和Unicode)还未出现。那时为了支持多种地区的语言,各大组织机构或IT厂商开始发明它们自己的编码方案,以便弥补ASCII编码的不足。一时间,各种互不相容的字符编码方案成百花齐放之势。为了避免混乱,ISO组织在1998年之后,陆续发表了一系列代号为8859的标准,作为ASCII编码的标准扩展,终于统一了单字节的西方字符的编码。ISO是设在瑞士的国际标准化组织的简称(International Organization for Standardization)。ISO-8859-1(Latin1 - 西欧字符) ISO-8

5、859-1覆盖了大多数西欧语言,包括:法国、西班牙、葡萄牙、意大利、荷兰、德国、丹麦、瑞典、挪威、芬兰、冰岛、爱尔兰、苏格兰、英格兰等,因而也涉及到了整个美洲大陆、澳大利亚和非洲很多国家的语言。此外,ISO-8859-1后来被采纳为ISO-10646标准(后面会讲到)的首页,换句话说,Unicode的最开头256个字符编码和ISO-8859-1是一一对应的。正是由于这个特殊性,使很多人产生了对ISO-8859-1编码的误用ISO-8859标准还包括: ISO-8859-2(Latin2 - 中、东欧字符) ISO-8859-3(Latin3 - 南欧字符) ISO-8859-4(Latin4

6、- 北欧字符) ISO-8859-5(Cyrillic - 斯拉夫语) ISO-8859-6(Arabic - 阿拉伯语) ISO-8859-7(Greek - 希腊语) ISO-8859-8(Hebrew - 希伯来语) ISO-8859-9(Latin5) ISO-8859-10(Latin6) ISO-8859-11(Thai - 泰国语) ISO-8859-12(保留) ISO-8859-13(Latin7) ISO-8859-14(Latin8) ISO-8859-15(Latin9) 但是ISO 8859系列标准的字符编码,还是互不相容,不可能同时使用的。毕竟它们只是单字节的编码方

7、案。而且,它们和多字节的编码方案如中文编码GB2312和BIG5也是不相容的。那些欧洲字符(最高位为1的字符),在GB2312和BIG5中被认为是双字节汉字编码的首字节。多字节编码的发展单字节编码只有256个码位(28=256),而中文字符何止千千万,单字节编码不可能满足中文编码的需要。于是为了适应东方文字信息处理的需要,ISO又制定了ISO 2022标准(Character code structure and extension techniques),提供了七位与八位编码字符集的扩充方法的标准。我国根据ISO 2022制定了国家标准GB2311 信息交换用七位编码字符集的扩充方法,并根据

8、该标准制定了国家标准GB2312-80编码。其他东方国家和地区也制定了各自的字符编码标准,如日本的JIS0208,韩国的KSC5601,台湾地区的CNS11643等。BIG5 BIG5是从CNS11643的早期版本发展而来的,虽然没有包括CNS11643的全部内容,但却是目前台湾、香港地区普遍使用的一种繁体汉字的市场标准,包括440个符号,一级汉字5401个、二级汉字7652个,共计13060个汉字。GB2312-80 全称是信息交换用汉字编码字符集 基本集,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。 双字节编码 A1-A9

9、:符号区,包含682个符号 B0-F7:汉字区,包含6763个汉字 GB2312码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,二级字3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。GBK 汉字内码扩展规范(GBK)是国家技术监督局1995年为中文Windows 95所制定的新的汉字内码规范。 双字节编码,GB2312-80的扩充,在码位上和GB2312-80兼容。 范围:8140 FEFE(剔除xx7F)共23940个码位。 包含21003个汉字,包含了ISO 10646中的全部中日韩汉字,简、繁体字融于一库。 严格说,GB

10、K不能算是国家标准,最多算是一个商业标准。而GB18030才是真正的国家标准。GB18030-2000 全称是信息交换用汉字编码字符集,是我国的强制标准,所有不支持GB18030标准的软件将不能作为产品出售。 单字节、双字节、四字节编码。 向下与GB2312编码兼容。 支持GB 13000.1-1993中的全部中、日、韩(CJK)统一汉字字符和全部CJK统一汉字扩展A的字符。 虽然GB18030标准非常强大,但它是一个中国大陆的标准。在编码上,除了和GB2312以外,还是不能和世界上其它任何一种字符编码统一。终极标准 Unicode和ISO 10646 前面所讲的一切字符编码方案,都是针对局部

11、地区或少数语言文字的,没有办法同时表达所有的语言文字,或在多种语言平台上交换。这对今天极其频繁的国际信息交流是不相称的。为了提高计算机的信息处理和交换功能,使得世界各国的文字都能在计算机中处理,从1984年起,ISO组织就开始研究制定一个全新的标准:通用多八位编码字符集(Universal Multiple-Octet Coded Character Set),简称UCS。标准的编号为:ISO 10646。这一标准为世界各种主要语言的字符(包括简体及繁体的中文字)及附加符号,编制统一的内码。统一码(Unicode)是Universal Code的缩写,是由另一个叫“Unicode学术学会”(T

12、he Unicode Consortium)的机构制定的字符编码系统。Unicode与ISO 10646国际编码标准从内容上来说是同步一致的。Unicode是Java语言和XML的基础,所以我们要稍微详细地介绍一下Unicode以及ISO 10646标准。注意:不够耐心的读者可以跳过本章的余下部分。但显然了解本章所描述的Unicode及相关编码的技术细节,有利于你更好地理解和应用Unicode。Unicode和ISO 10646的关系在1991年,Unicode学术学会与ISO国际标准化组织决定共同制订一套适用于多种语言文本的通用编码标准。Unicode与ISO 10646国际编码标准于199

13、2年1月正式合作发展一套通用编码标准。自此,两个组织便一直紧密合作,同步发展Unicode及ISO 10646国际编码标准。ISO 10646(UCS)Unicode 1993年,ISO组织发表ISO 10646国际编码标准的第一个版本,全名是ISO/IEC 10646-1:1993。它收录了20902个表意字符(ideograph,中日韩文均属表意字符)。同年,Unicode学术学会根据ISO/IEC 10646-1:1993修订了Unicode 1.0,发布Unicode 1.1。不断改善和修订ISO 10646标准。1996年发表Unicode 2.0,1998年发表Unicode 2.

14、1,根据ISO 10646做了一些改善和修订,新增了欧元符号。2000年10月发表了ISO 10646第二版的第一部分:ISO/IEC 10646-1:2000,新增收了6,582个表意字符于扩展区A中(CJK Unified Ideographs Extension A)。2000年2月,发表Unicode 3.0,也包含了同样的CJK Ext A。2001年,发表了ISO/IEC 10646的第二部分,增收了42711个表意字符于扩展区B里。2001年,Unicode发表3.1版,将CJK Ext B纳入新版Unicode中。虽然两个组织保持如此密切的合作关系,但Unicode和ISO 1

15、0646还是有区别的。ISO 10646着重定义字符编码,而Unicode则在此基础上,为这些字符及编码数据提出应用的方法以及对语义数据作补充。UCS的结构UCS的结构是一个四维的编码空间,每一维由一个字节(八位二进制位)组成,范围是00到FF。总体上分为128个群组(Group 00-7F),每一群组由256个平面(Plane 00-FF)组成,每一平面有256行(Row 00-FF),每一行256个编码位(Cell 00-FF)。所以,每一平面包括65,536个字符位(Character Position 0000-FFFF)。整个编码字符集的每个字符都由4个字节,按“组-面-行-列”的顺序表示。所以UCS的可编码空间为:128 256 256 256 = 231。UCS将其第一个平面(00群组中的00平面)称作基本多语种平面(Basic Multilingual Plane,BMP)。在UCS中,目前只有00组是重要的,Unicode学术学会断言,在可以预见的将来,甚至不可能用完00组中的前17个平面(00平面到10平面)。因此,Unicode只定义了ISO 10646的第00组的前17个平面。事实

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号