通用字符集

通用字符集（Universal Character Set, UCS）是由ISO制定的ISO 10646（或称ISO/IEC 10646）标准所定义的标准字符集。
通用字符集又称Universal Multiple-Octet Coded Character Set，中国大陆译为通用多八位编码-{字符}-集，台湾译为广用多八位-{}-元-{}-组编码-{字元}-集。

**概要**
通用字符集包括了其他所有字符集。它保证了与其他字符集的双向兼容，即，如果你将任何文本字符串翻译到UCS格式，然后再翻译回原编码，你不会丢失任何信息。
UCS包含了已知文字的所有字符。除了拉丁字母、希腊字母、西里尔字母、方体亚拉姆字母、阿拉伯字母、亚美尼亚字母、格鲁吉亚字母，还包括汉字、假名、谚文这样的方块文字，UCS还包括大量的图形、印刷、数学、科学符号。
ISO/IEC 10646定义了一个31位的字符集。
UCS不仅给每个字符分配一个代码，而且赋予了一个正式的名字。表示一个UCS或Unicode值的十六进制数通常在前面加上“U+”，例如“U+0041”代表字符“A”。

**版本**
 ISO/IEC 10646-1:1993 = Unicode 1.1 = GB 13000.1-93《信息技术 通用多八位编码字符集（UCS）第一部分：体系结构与基本多文种平面》。- ISO/IEC 10646-1:1993 第五至第七修订版 = Unicode 2.0- ISO/IEC 10646-1:1993 plus Amendments 5 to 7 = Unicode 2.1 excluding Euro Sign and Object Replacement Character, which are included in Amendment 18- ISO/IEC 10646-1:2000 = Unicode 3.0- ISO/IEC 10646-1:2000 和 ISO/IEC 10646-2:2001 = Unicode 3.1- ISO/IEC 10646-1:2000 第一修订版和 ISO/IEC 10646-2:2001 = Unicode 3.2- ISO/IEC 10646:2003 = Unicode 4.0 = GB 13000-2010- ISO/IEC 10646:2003 第一修订版 = Unicode 4.1- ISO/IEC 10646:2003 第一、第二修订版 = Unicode 5.0 excluding Devanagari Letters GGA, JJA, DDDA and BBA, which are included in Amendment 3- ISO/IEC 10646:2003 第一至第四修订版 = Unicode 5.1- ISO/IEC 10646:2003 第一至第六修订版 = Unicode 5.2- ISO/IEC 10646:2003 第一至第八修订版 = ISO/IEC 10646:2011 = Unicode 6.0 包括 Indian Rupee Sign- ISO/IEC 10646:2012 = Unicode 6.1- ISO/IEC 10646:2012 = Unicode 6.2，但不含 土耳其里拉符号（ISO 直到第一修订版才加入）- ISO/IEC 10646:2012 = Unicode 6.3，但不含 土耳其里拉符号，也不含五个双向控制字符 (Arabic Letter Mark, Left-To-Right Isolate, Right-To-Left Isolate, First Strong Isolate, Pop Directional Isolate)，ISO 直到第二修订版）- ISO/IEC 10646:2012 第一、第二修订版 = Unicode 7.0 ，但不含俄罗斯卢布符号- ISO/IEC 10646:2014 第一修订版 = Unicode 8.0，但不含格鲁吉亚拉里符号、九个CJK统一表一字和41个绘文字- ISO/IEC 10646:2014 第一、第二修订版 = Unicode 9.0 ，但不含Adlam, Newa, 日本的电视用符号、74个绘文字- ISO/IEC 10646:2017 = Unicode 10.0，但不含285个变体假名, 3 Zanabazar Square characters和 56个绘文字- ISO/IEC 10646:2020 = Unicode 13.0.0

**实现级别**
并不是所有的系统都需要支持像组合字符这样的的先进机制。因此ISO 10646指定了如下三种实现级别：
*级别1：不支持组合字符和谚文字母字符。
*级别2：类似于级别1，但在某些文字中，允许一列固定的组合字符，因为如果没有最起码的几个组合字符，UCS就不能完整地表达这些语言。
*级别3：支持所有的通用字符集字符，如，可以在任意一个字符上加上一个箭头或一个鼻音化符号.

**Unicode和ISO 10646的关系**
历史上存在两个独立的尝试创立单一字符集的组织，即
*国际标准化组织（ISO）于1984年创建的ISO/IEC JTC1/SC2/WG2，其含义是International Organization for Standardization / International Electrotechnical Commission, Joint Technical Committee #1 Information Technology, Subcommittee #2 Coded Character Sets, Working Group #2 Multi-octet codes). ISO 10646表示这是ISO 646的扩展。
*由Xerox、Apple等软件制造商于1988年组成的统一码联盟。前者开发的ISO/IEC 10646项目，后者开发的统一码项目。因此最初制定了不同的标准。
1991年前后，两个项目的参与者都认识到，世界不需要两个不兼容的字符集。于是，它们开始合并双方的工作成果，并为创立一个单一编码表而协同工作。1991年，不包含CJK统一汉字集的Unicode 1.0发布。随后，CJK统一汉字集的制定于1993年完成，发布了ISO 10646-1:1993，即Unicode 1.1。
从Unicode 2.0开始，Unicode采用了与ISO 10646-1相同的-{字}-库和字码；ISO也承诺，ISO 10646将不会替超出U+10FFFF的UCS-4编码赋值，以使得两者保持一致。两个项目仍都独立存在，并独立地公布各自的标准。但统一码联盟和ISO/IEC JTC1/SC2都同意保持两者标准的码-{}-表兼容，并紧密地共同调整任何未来的扩展。在发布的时候，Unicode一般都会采用有关字码最常见的字型，但ISO 10646一般都尽可能采用Century字型。

**Unicode和ISO 10646的异同**
统一码联盟公布的Unicode标准包含了ISO/IEC 10646-1实现级别3的基本多文种平面。在两个标准-{zh-hans:里; zh-hant:里;}-，所有的字符都在相同的位置并且有相同的名字。
ISO/IEC 10646标准，就像ISO/IEC 8859标准一样，只不过是一个简单的字符集表。它定义了一些编码的别名，指定了一些与标准有关的术语，并包括了规范说明，指定了怎样使用UCS连接其他ISO标准的实现，比如ISO/IEC 6429和ISO/IEC 2022。还有一些与ISO紧密相关的，比如ISO/IEC 14651是关于UCS字符串排序的。
Unicode标准，额外定义了许多与字符有关的语义符号学。Unicode详细说明了绘制某些语言（如阿拉伯语）表达形式的算法，处理双向文字（比如拉丁文和希伯来文的混合文字）的算法，排序与字符串比较所需的算法，等等。
由于Unicode这一名字比较好记，因而它使用更为广泛。不过一般认为，用于打印ISO/IEC 10646-1标准的字体在某些方面的质量，要高于Unicode 2.0。
两者部分样例字形有显着的区别。ISO/IEC 10646-1标准同样使用四种不同的风格变体来显示-{表}-意文字如中文、日文、韩文（即CJK），但Unicode 2.0的表里只有中文的变体。甚至存在“Unicode对日本用户来说不可接受”的不实传说。

**常见误解**

**ISO 10646是字形标准**
实际上，ISO/IEC 10646处理的是编码标准，但因为一些资料的混乱，而使人产生误会。比如一个常见的例子是：香港有研究人员以「 ISO10646HK.NET date=20050613010156 」为网址，公布一些字形制作和拼音厘定的文件。有些人便因此误以为ISO/IEC 10646是字形标准。
其实，在汉字文化圈中，各地都有其字形标准，例如香港的标准是《常用字字形表》。而ISO/IEC 10646则是作为一套编码标准，而不是去处理各地标准的细微差异或厘定标准字形。

**ISO 10646比Unicode更支援某地编码**
在Unicode和ISO/IEC 10646两个标准中，虽然两者部分样例字形有显著的区别，所有的字元都在相同的位置并且有相同的名字。ISO/IEC 10646-1标准使用四种不同的风格来显示中（繁、简）、日、韩文字，但Unicode的表中，只用简体中文风格来显示，像「Unicode对日本用户来说不可接受」的误解，便由此产生。
其实，上文已说明，ISO/IEC 10646或Unicode都只是编码标准，并不处理字形风格标准之问题。字形的风格可以透过改变显示字体来解决。

**参考文献**

**外部链接**
  JTC1/SC2/WG2 date=20180820063331 -  ISO/IEC 10646标准下载 date=20181026005055 -  Relationship to ISO/IEC 10646 date=20210225034214 -  对字符编码与Unicode、ISO 10646、UCS、UTF8、UTF16、GBK、GB2312的理解 date=20140313003458