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

关于通用多八位编码字符集(UCS)

浏览:10483  来源:通信人在线  日期:2023-01-31

一、概述

通用多八位编码字符集(UCSUniversal Multiple-Octet Coded Character Set)是国际标准化组织(ISO)制定的一种字符编码标准,它是国际标准化组织ISO/IEC制定的旨在实现全球所有文字符号统一编码的一项重要的国际标准。

1UCS的渊源

字符集及其编码是计算机系统中表示、储存、处理和交换文本信息的基础。有关统计表明,目前世界各个国家和民族几乎有6 800多种不同的语言和文字在使用。随着经济全球化,使用计算机处理、存储和传输任意多种语言文字的需求日益迫切,因而必须为计算机系统建立一个多文种信息处理环境。

我们知道,ISO对字符编码早就有ISO/IEC 646,它是采用7位二进制数字对ASCII 字符进行编码,它提供了27 = 128编码空间,对图形字符符号和控制字符予以编码而形成的字符代码。然而,对于文字字符的编码采用7位编码显然是不够的。为了兼容已发布使用的ASCII 字符集(ISO/IEC 646),ISO又发布了ISO/IEC 2022它是一个七位编码向八位编码过渡的标准,以更便于计算机的信息交换,为后续的多字节编码提供了一种扩充方法。我国等同采用ISO/IEC 646ISO/IEC 2022发布的标准是GB/T 1988GB/T 2311

欲详细了解上述两个标准的请进入GB/T 1988GB/T 2311

许多年来,绝大多数计算机系统所采用的字符集都是以国际标准ISO/IEC 2022为基础的。ISO/IEC 2022定义了七位代码和八位代码的空间及代码空间的扩充技术,即除了标准ASCII 字符集之外,还有其它几百种不同的扩充字符集(包括我国的GB 2312GBK汉字字符集)。不同字符集各有一个惟一的代码页号。当文本中出现非ASCII 字符时,先使用代码页号指出它属于哪一个字符集,然后才是该字符在字符集中的编码。由于这些字符集没有哪一个可以适用于所有的字母、标点符号和常用的技术符号,其编码还会互相冲突(不同字符集中可能使用相同的代码代表两个不同的字符,或使用不同的代码代表相同的字符),因此不仅使用比较繁琐,而且在不同的系统中交换数据时,总会有损坏的危险,因互不兼容。

于是,早在1984年,国际标准化组织(ISO)就启动了通用多八位编码字符集(UCS)的项目研究。所谓“通用多八位”,就是采用多个八位(字节)对字符进行编码,若通常采用四个八位编码,即可提供达13亿个编码空间,其用来容纳世界所有文字是绰绰有余的。

2UCS字符集的发布与修订

基于ISO研究的通用多八位编码(UCS)技术,在1993ISO首次发布了相应的标准,当时是一个系列标准,由两部分构成。在1993年首版发布时,仅发布了第1部分,在2000年对第1部分进行了第1次修订,随后发布了第2部分。它们是:ISO/EEC 10646-12000《信息技术 通用多八位字符集 1部分:结构和基本的多文种平面》; ISO/EEC 10646-22001《信息技术 通用多八位字符集 2部分:辅助平面》。200312ISO将两个部分合二为一,修订为ISO/IEC 106462003《信息技术 通用多八位字符集(UCS)》,收纳了基本的多文种平面和辅助平面的内容。通用多八位字符集(UCS)的意义详见下表1-2

1-2ISO通用多八位字符集(UCS)的意义

后期,ISO不断的对ISO/IEC 10646进行了多次修订,截止到2022年底,其最新版本是2020年版,这是对其的第6次修订版。事实上,ISO10646的每次修订,对编码技术的内容修订变化不大;主要是对编码字符集的不断扩充,即对世界各国的文字不断地收录到UCS字符集来,如CJK统一汉字扩充,从扩充A目前已到扩充F

3、我国等同采用ISO/IEC 10646的标准

我国在1993年等同采用了ISO/IEC 10646-11993发布了国家标准GB 13000.1-1993;在2010年对其进行了修订,等同采用的是ISO/IEC 106462003,发布了国家标准GB 13000-2010《信息技术 通用多八位编码字符集(UCS)》。它在2017年被国家转化为推荐性标准,不再强制。这些年来,虽然ISO/IEC 10646标准进行了多次的修订,但GB/T 13000标准并未随之修订,这是因为ISO10646标准的修订对其UCS编码的技术原理变化不大的缘故。

欲详细了解GB/T 13000标准修订情况的请进入

二、UCS字符集简介

下述主要依据GB/T 13000-2010标准对UCS字符集做一简要介绍,且重点介绍UCS编码的技术的内容,对于编码字符情况应参见ISO/IEC 10646-2020标准。另外,GB/T 13000-2010是由33章和19个附录所构成,内容太丰富。若要详细了解GB/T 13000-2010标准具体内容的请查阅下附件。

附件:GB/T 13000-2010《信息技术 通用多八位编码字符集(UCS)》

1、关于编码体系结构

UCS使用了一个被视为单一实体并由128个三维组构成的四维编码空间,它称为正则形式,其结构如下图2-1-1所示;其下图2-1-2为其代码结构示意;其下图2-1-3给出了UCS00组结构的布局示意。每个组包含256个二维平面,每个平面包含256一维行,每个行包含256个字位。一个字符在这个编码空间的一个字位上进行编码。每个字符均按照其组八位(G八位)、平面八位(P八位)、行八位(R八位)、字位八位(C八位)安排在UCS字符集中。为此,UCS规定了下表2-1所示的平面中的图形字符和它们的代码表示,平面类型包括基本多文种平面(BMP)、辅助多文种平面(SMP)、辅助表意文字平面(SIP)和辅助特殊用途平面(SSP)。(注意:在ISO/IEC 10646新版标准中又增加了三级表意文字平面(TIP))

2-1-1UCS的编码结构示意

2-1-2UCS的代码空间示意

2-1-3UCS00组的布局结构示意

2-1UCS规定的平面类型

UCS提供了4种字符编码表示形式,即:双八位BMP形式(UCS-2)、肆八位正则形式(UCS-4)、UTF-16形式和UTF-8形式。对于源自GB/T 1988ISO/IEC 646)的字汇的字符(ASCII 字符)是它们在原编码(7位编码)中进行简单的加零扩充而进行编码的,因次,当用8位、16位或32位整数表示时,其编码表示具有相等的整数值。

2、关于基本多文种平面(BMP

可是,四字节的字符编码太浪费存储空间了。比较实际的做法是,在UCS编码空间中,把第1和第2字节均为“0”的一个子空间,称为基本多文种平面BMP(即0000平面),作为它的子集来使用,记作UCS-2-2表示双字节编码)。该平面可被用作双八位编码字符集。注意,UCS-2只包含BMP字汇,因此它与UCS-4UTF-16UTF-8不能完全互操作。在符合双八位BMP形式(UCS-2)的编码字符数据元素内,BMP平面中的一个字符应有行八位(R八位)和字位八位(C八位)。

3、肆八位正则形式(UCS-4-辅助平面

辅助平面是指除0000平面(BMP)以外的其它平面,即指0001平面到FF平面(各平面的安排见表2-1)。其中,0110平面中的每个代码位置都可以唯一的映射到UTF-16形式的肆八位序列,这种形式与UCS-2的双八位BMP形式兼容。11FF平面和其它组的所有平面留作后续标准化使用。辅助平面的字符均采用肆八位正则形式(UCS-4),即每一个字符是由组八位、平面八位、行八位和字位八位所组成。

4UTF-16形式(0016个平面的转换格式)

UTF-16 UCS Transformation Form-16)提供了一百多万个UCS-4 图形字符的编码表示形式,这种形式与UCS-2的双八位BMP 形式兼容。这样就使得UCS-4 的字符可以与UCS-2 编码的字符数据共存。在UTF-16中,BMP 字汇中的每个图形字符都保留其UCS-2 的编码表示形式。此外,0016 个平面(1 048 576个码位)的某一连续区域中任一字符的编码由一对RC 元素(行八位和字位八位)组成,而每个这样的RC 元素对应于BMP 8 行(2 048个码位)的某个连续区域中的一个字位。这些代码位置留给本编码表示形式使用,不得用于其他目的。UTF-16的相关规定详见下表2-4;具体转换要求详见GB/T 13000的附录C

2-4UTF-16的相关规定

5UTF-8形式

UTF-8是另外一种能对所有UCS 字符编码的表示形式。它可用于在某些通信系统上传送文本数据,而这些通信系统假定00 7F 范围内的单八位符合GB/T 11383 的定义,其中包括符合GB/T 2311 8 位结构的C0控制功能集。UTF-8 还避免使用那些敏感的八位值,这些值在应用广泛的文件处理系统中对文件名字符串进行解析时具有特殊的含义。UCS 字符的UTF-8 编码表示中,八位的个数是16;第一个八位的值指明该编码表示形式中八位的个数。下表2-5-1给出了UTF-8的特点;具体转换要求详见GB/T 13000的附录D

2-5-1UTF-8的特点

为了与目前大量使用的基于ISO/IEC 2022的单八位系统保持向下兼容,同时避免与数据通信中使用的控制码发生冲突,UCS在实现时可以将双字节代码变换为可变长代码,最常用的就是UTF-8形式,它按照下表2-5-2给出的规则,把双字节的UCS-2编码转换为单字节、双字节或三字节和四字节的UTF-8编码。

2-5-2UCS-2编码到UTF-8编码的部分转换规则

从表中可以看出,标准ASCII 字符仍以单字节代码(00H~7FH)表示,其他字符如CJK汉字和扩充的拉丁字母、音节文字、标点符号等,需要使用双字节、三字节或四字节代码表示。这样,既保持了与传统ASCII 文本兼容,避免了与数据通信中控制码的冲突,又实现了各种字符集的统一编码。目前,大多数UCS编码都是以UTF-8编码形式实现的。

三、UCSUnicodeGB 18030字符集间的关系

Unicode字符集是当初美国的一些IT公司,在1987年开始研究制定的、也是旨在对世界各国文件进行统一编码的一种字符集规范标准。刚开始其研制思路(主要是编码技术)有些不同,但鉴于ISOUCS编码字符集其技术上更为优越,后来两者进行了融合,并一直保持着协调关系,同步发展,但各自发布着自己的标准文本。事实上,现在都把两者统称为UCS/Unicode字符集。

由我国自主研究制定的中文字符集标准GB 18030,在编码技术上是支持UCS/Unicode字符集要求的,只是GB 18030结合我国文字的实际情况,只收录了中文字符,包括汉字(含CJK统一汉字)、我国少数民族文字(近十种)和相应图形符号字符等。

欲进一步了解这些字符编码的请进入Unicode编码字符集中文编码字符集

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