人们经常听到或见到GBK、Unicode、ISO 10646、UCS、CJK等术语,而且各说不一,甚至产生一些误解,
影响这一重要国际标准的普及应用。如有些人认为:ISO 10646就是汉字标准,它的特点就是编码的汉
字多。这种理解与事实相距甚远。那么这些术语究竟是什么含义?他们之间有什么关系?这些术语所反
映的国际标准的内涵是什么?最新进展如何?作为制定国际标准ISO/IEC 10646的参加人之一,我借此篇
把该标准的一些基本情况、并以汉字编码区为例就该标准的一些最新进展及其实现作扼要陈述。
一、 基本术语
【ISO/IEC 10646】它是一个国际标准编号,该标准的英文全称为:Information technology - Universal Multiple - Octet Coded Character Set,
简称UCS。中文全称为:信息技术--通用多八位编码字符集,亦称大字符集。它是国际标准化组织(ISO)
1993年正式颁布的一项重要国际标准,它的宗旨是全球所有文种统一编码。它的2000年版正在印制中,
ISO/IEC 10646-1:2000。
【Unicode】 它本身是英文Universal Code的缩略语,顾名思义,就是统一编码。然而,
现在这个术语具有双重含义。首先,Unicode是对国际标准ISO/IEC 10646编码的一种称谓;另外,
它又是一个企业联盟集团的名称。Unicode集团是由美国的HP、Microsoft、IBM、Apple等几家知名
的大型计算机企业所组成的联盟集团,成立该集团的宗旨就是要推进多文种的统一编码,故称Unicode。
就内容而言,Unicode和ISO/IEC 10646是一致的,并行的。
【CJK】 它是把中国、日本与韩国的英文称谓的首字母用于ISO/IEC 10646中的中、日、韩统一编码
汉字的简称。
二、 ISO/IEC 10646 的体系结构
ISO/IEC 10646的总体结构是一个四维的编码空间,其间采用十六进制全编码。它总体上分为128个三维组
(group),每一组包含256个平面(plane),每一个平面包含256行(row),每一行包含256个字位(cell),
又称谓“列”。其中group的值范围是从00到7F,plane、row、cell的值范围都是从00到FF全编码。整个
编码字符集的每个字符都是由4个八位序列表示,按照组八位、面八位、行八位、列八位的顺序,具体表
示如下:
Group-octet Plane-octet Row-octet Cell-octet
组八位 平面八位 行八位 字位八位
由此不难算出该标准的可编码空间为:128X256X256X256=32KX64K
三、基本多文种平面的最新状态
ISO/IEC 10646将其第一个平面(00组中的00平面)称作Basic Multilingual Plane(基本多文种平面),
简称BMP,并在其上规定了双八位形式,它可以作为双八位编码字符集使用,即:在此平面上仅用行、
列两个八位就可以表示一个编码字符,这就使得人们对BMP格外青睐。BMP的最新概貌图如下:
00
A_ZONE 拼音文字编码区
33
----------------------------------------------------------
34 CJK Unified Ideographs
Extension A
4D 4DB5→|
-------------------------------------------------------
4E
CJK Unified Ideographs
9F 9FA5→|
--------------------------------------------------------
A0 YI A4C6→|
AB
--------------------------------------------------------
AC Hangul
D7 D7A3→|
--------------------------------------------------------
D8 S-ZONE for UTF-16
DF
-------------------------------------------------------
E0 EUDC
rivate Use Area 6400 Cells
F8
-------------------------------------------------------
FF R-ZONE
-------------------------------------------------------
国际标准化组织ISO于2000年出版国际标准ISO/IEC 10646 第二版。它的内容比1993年第一版丰富了很多,
仅与我国相关的新追加文字编码就有CJK扩充集A、康熙字典部首、CJK部首扩充、汉字结构符、藏文、彝文
、蒙文等。
在ISO/IEC 10646-1:1993中将BMP划分为A- Zone(00至4D行) 、I- Zone (4E至9F行)、O- Zone(A0至DF行)
、R-Zone(E0至FF行)。A- Zone为拼音文字编码区,拉丁文、阿拉伯文、日文的平假名及片假名、数学符号
、韩文等等都在此区域编码。一句话,除了汉字以外,目前世界上已规范的文种都在此区域编码。I- Zone
为表意文字编码区,我们将其称作汉字区,通常人们所说的CJK统一编码汉字就放在这个区域,从4E00到
9FA5共20902个编码汉字。O- Zone是一个开放区域,未作定义,留作将来标准化用。R-Zone为限制使用区,
一些兼容字符、字符的变形显现形式、特殊字符等均放在此区。在BMP上编码的字符仅仅是一些已经规范化
语种的基本字符,并不是全部。
随着信息技术的不断发展,未规范的语种逐渐规范,要求正式编码是必然的;另外,出于实际的需要,已
编码的文种也有待扩充。就汉字而言,随着CJK 20902汉字在Windows95上的实现,推动了汉字辞书、典籍
的数字化,然而,20902汉字并不能满足这种数字化的需求,汉字急需扩充。如何扩充、扩充多少并不是盲
目地,除了要考虑扩充的内容外,还要考虑空间的可行性,尤其是在BMP编码的可行性,否则,实现就会成
为大问题。起初我们看好了O- Zone(64X256=16384个码位),同时,其它语种也瞄准了它,为了缓解各语
种对BMP的争夺(主要是汉字),ISO决定用O- Zone的D8至DF这8行(8X256=2048)来换取一百万的编码空间
,即:UTF-16(有关UTF-16的情况将在后面单独介绍)。除此而外,韩文的迁移、再扩充又占用了
O- Zone的AC至D7这44行(44X256=11264)。至此,BMP最大的一块可编码区就是原来韩文的编码区
(34至4D行,共6000多码位)。针对这个编码空间,我们对CJK扩充汉字集进行筛选,整理出现在的CJK扩
充集A,它总共有6585个CJK统一编码汉字。此外,BMP中新增加的与中国有关的文字及其编码空间如下:
⒈CJK扩充集A 3400→4DB5
⒉康熙字典214部首 2F00→2FD5
⒊CJK部首扩充 2E80→2EF3
⒋汉字结构符 2FF0→2FF8
⒌藏文 0F00→0FCF
⒍彝文 A000→A4C6
⒎蒙文 1800→18A9
在BMP的64K编码空间日趋饱和、各文种争夺编码空间十分激烈的情况下,我国成员经过不懈的努力,为中
国的上述几个文种在BMP中争取到了宝贵的编码空间。到目前为止,仅CJK(准确地说应该是CJKV,V代表越
南)汉字在其中编码就达27000多字,占去了BMP近2/5的编码空间。进入BMP编码,就抢占了双八位编码的
先机,这对推进我国的信息技术与信息产业的发展起到了极为有利的推动作用。中国代表多年付出的艰辛
终于得到了回报。
韩文编码的迁移、再扩充也是BMP一个很大的变化。早在,ISO 10646:1993版中,韩文编码是在
3400→4DFF这个区。与汉字一样,随着信息技术的发展,已编码的韩文并不能满足用户的需求,于是韩文
也开始扩充,出于应用上的考虑,希望与已编码的韩文连成一个整体。不幸的是,它的下面就是CJK汉字编
码区,没有扩充的余地。为了保持完整性,韩文只好舍弃已编码的空间,向下迁移,同时再扩充。现在的韩文编码位于AC00→D7FF区域内。韩文的迁移、再扩充得益于韩国IBM和Microsoft的大力支持,他们先将编码方案在Windows上作了实现,成为事实上的标准,而后才提交到ISO。由此可以看出,企业在标准制定中的作用也是非同小可。
其它拼音文字的最新编码在此不一一详列,它们已在基本多文种平面最新全貌图中标记一个“新”字体现
出来。基本多文种平面最新详图如下:(略)
四、CJK Extension B及ISO/IEC 10646空间分配现状
随着信息技术的不断发展,各国的需求也日益膨胀,东亚国家大量的汉字古籍文献电子化、数字化的呼声
一浪高过一浪,目前国际标准ISO/IEC 10646已收入的27,000多汉字仍不能满足国内外大型汉字电子出版
商的需求。如我们国家正式整理出版的汉字字典—《中华字海》已含有近8万字,但仍未收全,一些学者
认为中国汉字有10万之多,此外还有来自我国以外的日本、韩国、越南等国的一些汉字。8万也好,10万
也罢,总之需求是大量的。
为了整理如此巨量、偏僻、不同来源的汉字,必须借助计算机技术,利用数据库这个先进工具来进行认同、
甄别与整合处理。然而目前尚没有支持海量、多来源的汉字平台环境,我们经过反复研究、斟酌,决定建
立图形数据库。现在我们已建立起一个含有7万多汉字的汉字图形、属性数据库。这个数据库的建立给整个
汉字国际标准的制定工作带来巨大的益处。除去已经在ISO 10646中编码的27000多CJK统一编码汉字外,
我们最近又九易其稿,整理完成了4万多CJK统一编码汉字,成为CJK Extension B收字的依据。为了支持、
推进我国乃至世界的汉字古籍数字化,我们已为此向国际标准化组织申请到了新的编码空间(64K),
即00组的02平面。CJK Extension B的正式文本已于今年9月中旬提交给 ISO/IEC JTC1/SC2作为
CD(Committee Draft),已进入ISO的表决程序。
到目前为止,该标准仅释放了其00组的部分平面,即:00平面就是BMP,它被用于全球现已规范语种的基本
文字编码,它的编码空间已基本饱和。01平面作为拼音文字辅助平面,02平面作为汉字辅助平面,我们
的CJK Extension B即将放入该平面,E0至FF平面作为该标准的专用平面来使用。除此之外,其它空间尚未
分配。
五、UTF-16(UCS Transformation Format)
为了发展,ISO/IEC 10646 在BMP定义了一个代理区(Surrogate Zone)(D800至DFFF), 并将这个区域平
分为前后两个各容纳1024(1K)个编码的区域(D800-DBFF及DC00-DFFF),分别称作高半代理
(high surrogate)及低半代理(low surrogate)区域。从这两个区域分别各取一个编码,分别称为高半
代理键(high surrogate key)及低半代理键(low surrogate key),由这两个key组合成一个4 bytes代
理对(surrogate pair)来表示一个编码字符。由于这两个区域内并没有定义任何的字符或符号,而且只
有将这两个代理对(surrogate pair)结合在一起才能表示一个字符,单独使用其中的任何一个都没有意
义。所以一个现有的应用程序无论何时遇到输入来自此两块保留区的任何一个编码时,它都是没意义的。
由surrogate机制可对应到一百万个字符(1024x1024=1,048,576),这一百万个字符分别对应到
ISO 10646 中00组的00至0F这16个字面(plane),每一个字面的容量为64K(256x256),CJK扩展集B,位于第
二个字面(plane 2),第14, 15个字面(plane 15, 16)则留做用户自定义区域(user private area)。
UTF-16已经在Microsoft的Windows2000上实现了,它的实现对大型的古籍数字化具有重要的意义。
除了WINDOWS 2000支持UTF-16外,微软的一些应用软件也都在不同程度上支持UTF-16。如:SQL Server7.0
、NotePad、WordPad、Word2000、Access2000、OutLook2000等全部支持UTF-16的输入、显示、打印,
SQL Server7.0、NotePad、WordPad还支持得更好一些,如:屏幕上移动、选择、删除等操作。
支持UTF-16的字库已经在制做。
六、GBK
为了推进Unicode的实施,同时也是为了向下兼容,即:与我国一直沿用的字符集标准GB2312完全兼容,
电子部与国家技术监督局联合颁布一个新的汉字内码扩展规范:GBK。
简单的说,GBK就是在保持GB2312原貌的基础上,将其字汇扩充与ISO 10646中的CJK等量,同时也包容了台
湾的工业标准Big5码汉字,此外还为用户留了1894个码位的自定义区,尽管它仍是CodePage(代码页)形式,
但还是在原GB2312的基础上迈出了可喜的一步,成为最终向Unicode过渡的一个桥梁。这在WINDOWS 95上
就有所体现:WINDOWS 95的内核已经Unicode化,正是由于这一点,WINDOWS 95上所有GBK字库都可以完全
不加修改地作为Unicode字库用于WINDOWS NT平台;只要将WINDOWS 95上输入法码表存成Unicode形式,
就可以用于WINDOWS NT平台。
GBK在WINDOWS 95上的实现,给中文信息技术的发展带来了新的契机。基于GBK的TrueType字库、汉字输入
方法、排版系统、发音引擎、简繁转换工具、大规模电子辞书等如雨后春笋般的诞生了。
然而,GBK作为CodePage它的可编码极限为20902+1894,这远不能满足制作大规模电子辞书的用字量,这
种CodePage的局限性也给人们留下遗憾。比如:最大的汉字辞书《汉语大词典》仅“字头”就有29000多,
它在WINDOWS 95上就不能完全再现,最终必将走向Unicode。尽管如此,GBK仍是架起GB与Unicode间的一
座实用的桥梁。
七、ISO 10646/Unicode的实现及其重要意义
一在全球范围内建立起实时、无障碍地信息交换模式
我们正处在一个信息飞速发展的时代,Internet发展迅猛,信息交换日趋频繁,无障碍的信息交换势在
必行,它的唯一出路就是采用Unicode,这也是Unicode的宗旨。现在,借助微软的IE对Unicode的支持,
可以解决大多数语种的实时、无障碍的信息交换。这在以往是不可想象的,即便同是中文的简、繁汉字却
不能“同台”乃至“同屏”相见。在以Unicode为内核的IE和Word出台前,就是大陆与港、台间通电子邮件
与文件交换都相当困难,更不用说与国外的文件交换了。由于语言的差异,往往不能准确表达双方意图,
造成不必要的损失。随着对Unicode实现的逐步深入,全球范围的实时、无障碍地信息交换将使人们永远
摆脱这类困扰。
二推动了汉字典籍的数字化
Unicode发展到今天,仅就汉字而言,它不但有CJK的20902汉字,还有了CJK_A的6585汉字,即将有CJK_B 的
4万多字,将来还会有CJK_C、CJK_D等等。由于Unicode的编码空间浩瀚,编码汉字越来越多,这就使用字
量大的汉字辞书、古籍实现数字化成为可能。基于Unicode的大型电子出版物已经开始问世,原来束之高
阁的典籍文献走进寻常百姓的案头,为弘扬古老的中华文化打开了方便之门。电子出版物具有体积小、
携带方便、查寻快捷准确等优点,因此倍受人们的青睐。古籍数字化来势迅猛,据我所知,中国的总字量
达7亿之多的《文渊阁四库全书》、百卷本的《中华文化通志》、《中华大典》以及韩国的
《(高丽)大藏经》、《(高丽)王朝实录》等巨著的电子版都在紧锣密鼓地制作中,并接近完成。国内
新闻媒体也都在纷纷制作自己的报纸、杂志光盘,享誉国内外的《人民日报》正在制作它的50年光盘。
三为数字化图书馆的建立铺平了道路
图书馆的信息来源广泛、文种多样、用字量大、使用需求复杂,所有这些都是建立数字化图书馆必须考虑、
解决的问题。这些问题曾长期困扰着图书馆事业的发展。如今,有了Unicode,这些问题的解决就有了基
础。我相信,新形式的数字化图书馆将逐步展现在读者面前。网上书店已经亮相。
四为弘扬汉字文化提供了舞台
Internet发展迅速,缩短了时空,他是一个很好的宣传窗口,网上的英文站点多如牛毛,而中文站点却寥
寥无几。究其原因,就是较长时期以来所采用的代码体系不可交换。
我们中国具有五千年的文化历史,有着丰富、灿烂的文化,苦于不能通过Internet这个大窗口向世界展示。
如今有了Unicode,排除了交换的屏障,中文站点逐渐在网上登场,才使我们有了宣传的舞台。
五Single Binary技术的诞生
Single Binary技术是Microsoft在开发系统软件和重点应用软件时,比较系统地以国际标准ISO/IEC10646
为基础,保持基本程序和基本软件不变使之用于各国语言环境,称之为Single Binary,即同一套基本程序
用于多个语言环境的技术。这一策略,大大加速了Microsoft开发、移植各国语言产品的进程。
把这项技术在一个产品中同时应用于软件与数据就称之为Single Data Single Binary技术。这项技术不但
解决了交换的问题,同时也免去了对多套软件、多套数据的维护,既节约了成本,又提高了效率,事半功
倍。尤其象《四库全书》这样巨型中文电子出版物,要想同时维护多套数据几乎是不可能的,由于采用
了UNICODE编码,该产品实现了跨平台、跨语境的使用,可在中文简体、中文繁体、日文、韩文、英文等各
种平台上运行。
六使汉字关联活起来
由于Unicode中的CJK汉字的编码架构才使正-异、中-日、繁-简,正-讹以及古今、新旧字形汉字在同
“台”得以相见,真正使这些关系密切起来,不再是隔“台”相望。目前,正-异关联、中-日关联、繁-简
关联,正-讹关联以及古今、新旧字形关联等已被应用于全文检索系统,极大地方便了使用不同文种用户面
向单字和面向词汇的检索,大大地提高了检索的命中率。同时繁-简关联还被用于汉字输入法中,实现了
简入繁出、繁入简出,极大地方便了用户。
Unicode的实现,给汉字的信息交换带来了璀璨的阳光,也必将推动中华五千年灿烂文化向更深、更广的
方向发展。
字、词、语,字是基础。编码文字是信息技术的基础,在扎实的字符集基础上,信息技术正酝酿着更大的
飞跃发展。
阅读(4544) | 评论(0) | 转发(0) |