欢迎来到通信人在线![用户登录] [免费注册]

关于Unicode编码字符集

浏览:4887  来源:通信人在线  日期:2023-02-02

一、Unicode的渊源

1Unicode的诞生

Unicode编码字符集(Unicode Coded Character Set)源自于美国。我们知道,最早的编码字符集是采用的7位二进制编码,如美国信息交换标准代码(ASCII)。7位二进制编码可以有27 = 128个编码位组,最多能为128个字符进行编码。然而当字符中包含文字字符(如汉字及世界其它国家文字等)时,128个编码位组显然是不够用的。

欲具体了解ASCII编码字符介绍的请进入

于是,在1987年初,美国的施乐(Xerox)公司的Joe Becker倡议将计算机字符集编码码位扩充到更的多位数,以收纳世界上各国各种文字,并开始研究,其研究的内容主要体现在下表1-1所示的方面,但重点是两个:

1-1Unicode起步所研究的内容

一是采用的编码位数。其实在当时,国际上已有不少字符集编码标准采用了16位(双字节)编码,如我国的GB 2312-80、台湾的Big5等。于是,Xerox公司的研究时考虑16位编码,采用16位编码,其码位位组可达216 = 65536个编码位组。当初Xerox公司研究的时65536个编码位组是否能够容纳全世界所有文字字符的编码。最终研究的结果是,采用16位二进制编码(双字节),应该可以对全世界所有文字字符进行编码。这里需要指出的是,他们这种决定对于汉字,尤其是中、日、韩所用汉字采用统一编码,且是按抽象字符编码,而不是对字形或者字意编码。

二是采用的码位长度。决定采用双字节编码后,面临两个选择:一是采用变长编码形式(如我国的 GB 2312标准),对于 ASCII 字符使用一个字节,其它字符使用两个字节;另一种是采用定长编码形式,不管是不是 ASCII 字符,所有字符编码统一使用两个字节。最终研究的结果是,采用定长编码形式。采用定长编码形式的好处是显而易见的,就是避免了使用代码扩充技术。

鉴于上述的研究,最终的研究成果于 1988 8 月以草案的形式发布(后称为 Unicode 88)。他们将其字符集编码标准被命名为“Unicode”,在我国又翻译称统一码、联合码或万国码。为了推动Unicode的开发与应用,1991年当时的美国一些信息技术公司,如IBMDECSunXeroxAppleMicrosoftNovell等公司共同出资在加州成立Unicode联盟The Unicode Consortium),并由协会设立非赢利的Unicode公司,来推动Unicode的开发与应用工作。

欲具体了解GB 2312-80汉字编码字符介绍的请进入

2Unicode标准的历程

于是,在Unicode 88草案的基础上,于199110 月发布了 Unicode 的第一版(Unicode 1.0.0)。该版仅包含 24 种语言文字共 7163 个字符,但该版本中并未包括CJK汉字。在19926月发布了 Unicode 的第二版(Unicode 1.0.1);该版本中加入了20902 CJK统一汉字。下表1-2-1汇总了Unicode标准版本信息,包括版本号与发布年份等。2021 9 月发布Unicode 14.0.0版本,该版本支持 159 种文字,共包含 144697 个字符(包括控制字符、文字符号、表情符号等)。目前,Unicode 15.0.0 版本已于20229月发布。该版本增加了 4488 个字符(包括20 个新的表情符号(Emoji)字符和4193CJK表意文字),共有 149186个字符。

1-2-1Unicode标准的版本信息(截止到20231月)

注意,Unicode标准新的版本将是代替以前的版本。Unicode 标准的版本号是由三个字段组成,分别依次表示主要版本、次要版本和更新版本。它们的含义区别详见下表1-2-2

1-2-2Unicode标准新的版本号的含义区别

二、与ISO的合作

1、关于ISO的研究

其实,早在1984年,国际标准化组织(ISO)就启动了通用多八位编码字符集(UCS)的项目研究,初始的技术方案遭到了美国上述部分信息技术公司的抵触的。从“通用多八位编码”的名字就可以看出ISO采用的多字节编码,即单字节、双字节乃至四字节的不定长编码的方案,对于ASCII 字符仍采用单字节长度编码;对于世界文字字符常采用双字节编码,同时设计了四字节编码,需要时可将文字字符置于四字节编码区。显然,ISO研究制定的字符编码体系是优越的,其容量宏大(编码位组多)、字符编码使用灵活(可按文字的字形、部首、笔画等进行编码)、兼容早期字符编码方案(ASCII 字符编码);适用于世界各种文字及符号,包括世界上曾经出现过但现今很少使用的、以及今后将新产生的文字符号。

欲具体了解国际标准化组织(ISO)介绍的请进入

ISO 方案相比,Unicode 88草案中的方案明显存在以下不足:

一是定长双字节编码无法与ASCII 字符编码兼容。我们知道,采用7位编码的ASCII 字符的编码标准是在上世纪六十年代就开始实行了,这期间已大量地应用于多种编程软件及规范标准之中。Unicode 88开始对ASCII 字符采用双字节编码,就要求已应用的7位编码的ASCII 字符的编码方案都重新修订过来,这显然是不现实的、是不切合实际的。

二是编码位组容量相对捉襟见肘。Unicode 88采用16位二进制编码,可以提供65536个编码位组,在Unicode最初的研究中其容量是够用的。因为研究的出发点是仅编码现用的世界各国文字字符、很少考虑按字形编码(尤其是CJK汉字,不考虑其文字的表意)等等。显然这种出发点是好的,它可以简化编码体系,然而它却限制了要编码的文字符号,严重影响了实际中文字信息化的处理与通信。

2UnicodeUCS的融合

从标准的组织制定形式上来讲, ISO以国家成员体为基础而制定的;Unicode则是以公司为基础的集团制定的。相对于字符集编码标准,ISO由各成员国的参与,标准的研究制定显然更充分些、更周全些。鉴于上述Unicode 88草案方案的不足,1991年,在包括中国在内的各ISO成员过和信息领域的许多信息技术(IT)大企业的推动下,UnicodeUCS两大标准实现了相互对齐、合二而一。Unicode 1.0版和ISO/IEC第一个ISO草案DIS 10646.1进行了双方都可接受的修改,将它们的组合库合并为一个单一的数字字符编码。这项工作在Unicode 1.1版中达到了高潮。

此后,这两个标准一直保持着协调关系、同步发展。ISO/IEC 10646 -1:1993Unicode 1.1标准的编码字符(码位和名称)完全相同。Unicode 3.0版等同于ISO/IEC 10646-12000Unicode3.1版等同于ISO/IEC 10646-22001。总体上,ISO/IEC 10646-12000Unicode 3.0ISO/IEC 10646-22001 Unicode 3.1的内容、编码、命名是完全相同的。但在一些细节上,两个标准仍然有一些差别的。关于Unicode标准与ISO/IEC 10646标准各版本之间的关系详见下附件2

附件 2Unicode标准与ISO/IEC 10646标准各版本之间的关系

三、Unicode编码字符集介绍

截止到20231月,Unicode 15.0.0 版本是Unicode编码字符集的最新版本。它是由核心规范(其目录详见下表3所示)、代码图表、标准的附录、Unicode字符数据库(UCD)等构成;若要详细了解该版本核心规范具体内容的请查阅下附件3;若要Unicode V15.0.0标准其它内容请在其Unicode联盟网站查阅。

3Unicode V15.0.0核心规范目录

附件 3Unicode编码字符集标准核心规范(V 15.0.0

事实上,Unicode编码字符集(Unicode Coded Character Set)与国际标准ISO/IEC 10646完全兼容并同步发展的一种通用的字符编码标准,虽然他们各自发布自己版本的标准。

欲进一步了解UCS编码字符介绍的请进入

附录
联合国儿童基金会助学
© 2004-2024 通信人在线 版权所有 备案号:粤ICP备06113876号 网站技术:做网站