unicode(国际通用字符集)
历史上有两个独立的创立单一字符集的尝试:一个是国际标准化组织的iso 10646 项目, 另一个是由(一开始大多是美国的)多语言软件制造商组成的协会组织的 unicode 项目。 1991年前后两个项目的参与者都认识到, 世界不需要两个不同的单一字符集。它们合并双方的工作成果并为创立一个单一编码表而协同工作。两个项目仍都存在并独立地公布各自的标准, 但 unicode 协会和 iso/iec jtc1/sc2 都同意保持 unicode 和 iso 10646 标准的码表兼容, 并紧密地共同调整任何未来的扩展。
unicode与其他汉字符集的关系:
gb2312、gb13000.1、gb18030均为国家标准,而gbk是国家规范。gb2312编码汉字6763字,是在windows 95出现以前,国内信息处理普遍采用的编码标准。gbk是在保持gb2312原貌的基础上,将其字汇扩充至iso 10646中的cjk 20902汉字,同时也就包容了台湾的工业标准big5中的全部汉字,没有体系结构的变化。而gb18030则不然,它是在gbk的基础上做进一步扩充,不但把cjk-扩展a的6582汉字扩充进去,而且还改变了gbk的体系结构。尽管gb2312、big5、gbk在某种程度上依然尚存,但iso 10646(gb13000/unicode)已日渐成为主流编码。
cjk-扩展b的汉字编码与unicode的surrogate机制:
国际标准化组织在 iso10646-2000 的基本平面(bmp 或者 unicode 3.0, 下简称 unicode)编入了27,564 汉字(u 4e00~u 9fff以及u 3400~u 4dff),既是2000年3月在gb18030颁布时所建议支持的字汇。其中u 3400~u 4dff部分的6582个汉字又称为cjk-扩展a。 同时国际标准化组织还在iso10646-2000 的第二平面扩展了42,711汉字(又称为cjk-扩展b)。该42,711 汉字的编码表已基本确定,尽管不排除未来微小变动的可能性。也就是说,到目前为止unicode已编码的汉字达七万多字。
cjk-扩展b 的42,711汉字编排在iso10646-2000的第二平面,所以编码需要4个字节。为存取处理这些4字节字符,在unicode 中引入了surrogate 机制(在iso10646-2000中命名为utf-16)。根据这样一种机制, 在unicode中用两个16位编码就可以对iso10646-2000 第二平面中的汉字进行存取。microsoft 从windows2000 (在windows 98, windows me 及 windows nt4 中没有)开始对这样一种机制提供支持。只要有相应的输入法和字库并且在应用程序中给予相应的支持,就应该能够输入显示上述提到的汉字。但是,要想得到对surrogate全面的支持,用户需先下载并安装surrogate package ( surrogate支持包 )。
支持cjk-扩展b汉字显示的字体:
1、简体中文版microsoft office xp及更高版本附带了宋体-超大字符集中文字体 ,支持上面提到的全部27,564个汉字以及在第二平面中(42,711)选出的36,862个在中国大陆、香港特别行政区(以及部分台湾地区)使用的汉字。因此包括西文等常用字符在内,宋体-方正超大字符集共包括65,531个字符。换言之,它支持cjk-扩展a中的全部汉字和cjk-扩展b中的部分汉字。
2、繁体中文版microsoft office xp及更高版本则提供了支持超大字符集的细明体(mingliu ext-b 与 pmingliu ext-b),可以从已装有office的电脑中单独找到该字体文件,复制到本机windows系统下的fonts文件夹中即可。需要注意的是,此字体全面支持cjk-扩展b中的42711字,但不支持cjk-扩展a中的6582字。