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字。