Unicode

来自GSXAB的知识库
(重定向自ISO 10646
Unicode
术语名称 Unicode
英语名称 Unicode
别名 统一码, 万国码, 单一码, 国际码

Unicode[1] 是一个广泛使用、构成事实业界标准的字符集以及其相关的一系列标准,其中也包括几个相关的字符编码方案。 Unicode 一词是专有名词,是标准名称以及组织商标名,一般保留使用;面向非专业领域时,通常使用其标准中文名称“统一码”,也有人译为“万国码”。

Unicode 是区分字符集和编码方式的字符集。这一字符集的编码空间为 0 到 10FFFFH ,有 21 位二进制位。其对应的编码方案有多种,主要包括 UTF-8 、 UTF-16 、 UTF-32 等。从 1991 年 Unicode 1.0 诞生以来, Unicode 字符集仍然在不断更新中,到本文编写时间 2025.9 为止,最新版本为 17.0 ,发布日期为 2025.9.9 。

Unicode 字符集由 Unicode 联盟(the Unicode Consortium 、统一码联盟)开发,通过 ISO 10646 成为 ISO/IEC 标准,即 ISO/IEC 10646 。

官方网站为 https://home.unicode.org/

字符集特征

Unicode 出现前是要解决之前过多无法通用的跨国别字符编码方案所带来的局限,不同系统使用不同的代码页导致文件无法在系统间交换,而且不同语言使用不同编码,几乎无法简单地支持多语言文本,因为无法同时使用多个字符集。因此, Unicode 诞生时想要创建一个统一字符集,包含现代和古代所有文字系统中的所有字符,并且每个字符赋予一个唯一标识。 1988 年提出时,名称 Unicode 反映了其想要提出一个独特(unique)、统一(unified)、通用(universal)的编码。

截至 Unicode 17.0 (2025.9.9), Unicode 已支持来自 172 种文字的 15,9801 个字符,涵盖了普通、文学、学术、技术类别的多种语境。

与其他编码不同的是, Unicode 由于需要吸收多种不同编码,其中包括跨文字、跨编码的相同和不同的字符,与同一种文字中的同形字符、同一种文字中多种语言同形字符或同源异形字符,而且其字符集允许组合字符与变体选择等复杂功能,逻辑意义上的一个字符和编码意义上的一个码位还有区别,以下字符均是默认指一个码位或编码单元。

码位特征

Unicode 中的编码字符集称为 UCS (Unicode Coded Character Set),其中的每个码位在使用十六进制表示时,在前面加上前缀“U+”进行区分,且需要补零写成至少 4 位二进制位。因此,全部范围为 U+0000U+10FFFF 。这一范围开始出现在 2003 年版本,再之前的表示方式可能要求 0x7FFFFFFF 范围。

平面
术语名称 平面
英语名称 plane
基本多文种平面
术语名称 基本多文种平面
英语名称 Basic Multilingual Plane
别名 BMP, 第0平面
辅助平面
术语名称 辅助平面
英语名称 supplementary plant
多文种补充平面
术语名称 多文种补充平面
英语名称 Supplementary Multiplingual Plane
别名 SMP, 第1平面, 第1辅助平面
表意文字补充平面
术语名称 表意文字补充平面
英语名称 Supplementary Ideographic Plane
别名 SIP, 第2平面, 第2辅助平面
表意文字第三平面
术语名称 表意文字第三平面
英语名称 Tertiary Ideographic Plane
别名 TIP, 第3平面, 第3辅助平面
特殊用途补充平面
术语名称 特殊用途补充平面
英语名称 Supplementary Special-purpose Plane
别名 SSP, 第14平面, 第14辅助平面
私人使用区
术语名称 私人使用区
英语名称 private use area
别名 私用区, PUA
补充私人使用区-A
术语名称 补充私人使用区-A
英语名称 Supplementary Private Use Area-A
别名 SPUA-A, 第15平面, 第15辅助平面
补充私人使用区-B
术语名称 补充私人使用区-B
英语名称 Supplementary Private Use Area-B
别名 SPUA-B, 第16平面, 第16辅助平面

Unicode 中的码位可以看作跨越了两个字节,其中第一个字节相同第二个字节不同的情况,称为两者在同一平面(plane)。 也就是说,每个平面含有 65536 (=2¹⁶)个码位。Unicode 的编码中使用 17 个平面,用其高字节编码为第 0 到第 16 平面。 高字节为 0 的全体码位,即 U+0000U+FFFF 的范围,称为第 0 平面(Plane 0),包含绝大多数现代字符,称为基本多文种平面(Basic Multilingual Plane, BMP)。 相对地,第 1 到第 16 平面统称为辅助平面(supplementary plane)。具体而言,现在使用的除了第 0 平面以外还有:第 1 平面多文种补充平面(Supplementary Multiplingual Plane, SMP)、第 2 平面表意文字补充平面(Supplementary Ideographic Plane, SIP)、第 3 平面表意文字第三平面(Tertiary Ideographic Plane, TIP),以及第 14 平面特殊用途补充平面(Supplementary Special-purpose Plane, SSP)、第 15~16 平面补充私人使用区(Supplementary Private Use Area planes, 分别叫 SPUA-ASPUA-B)。

区块
术语名称 区块
英语名称 block

每个平面被进一步分为多个界限与 16 的整数倍对齐的区块(block),这些区块根据各自所想要存放的字符种类,起有各自的英文名称。区块中文名由于翻译的不同可能存在差异。

目前涉及汉字的有:

  • U+4E00-9FFF:中日韩统一表意文字(CJK Unified Ideographs):也称 CJK 统一汉字。
  • U+3400-4DBF:中日韩统一表意文字扩展-A(CJK Unified Ideographs Extension-A):也称扩展 A 区,通称扩 A 。
  • U+F900-FAFF:中日韩兼容象形文字(CJK Compatibility Ideographs):由于 Unicode 需要保证双向转换,部分兼容编码中需要对一些汉字保持多个不同编码(特别是韩国编码中有将每个汉字不同读音使用不同编码的历史包袱),这些额外字符会被放在兼容区,单独使用时要求被规范为对应字符本身应当在的码位。
  • U+20000-2A6DF:中日韩统一表意文字扩展-B(CJK Unified Ideographs Extension-B):也称扩展 B 区,通称扩 B 。
  • U+2A700-2B73F:中日韩统一表意文字扩展-C(CJK Unified Ideographs Extension-C):也称扩展 C 区,通称扩 C 。
  • U+2B740-2B81F:中日韩统一表意符号扩展-D(CJK Unified Ideographs Extension-D):也称扩展 D 区,通称扩 D 。
  • U+2B820-2CEAF:中日韩统一表意符号扩展-E(CJK Unified Ideographs Extension-E):也称扩展 E 区,通称扩 E 。
  • U+2CEB0-2EBEF:中日韩统一表意符号扩展-F(CJK Unified Ideographs Extension-F):也称扩展 F 区,通称扩 F 。
  • U+2EBF0-2EE5F:中日韩统一表意符号扩展-I(CJK Unified Ideographs Extension-I):也称扩展 I 区,通称扩 I 。
  • U+2F800-2FA1F:中日韩兼容表意符号扩展(CJK Unified Ideographs Extension-B):通称扩 B 。
  • U+30000-3134F:中日韩统一表意符号扩展-G(CJK Unified Ideographs Extension-G):也称扩展 G 区,通称扩 G 。
  • U+31350-323AF:中日韩统一表意符号扩展-H(CJK Unified Ideographs Extension-H):也称扩展 H 区,通称扩 H 。
  • U+323B0-3347F:中日韩统一表意符号扩展-J(CJK Unified Ideographs Extension-J):也称扩展 J 区,通称扩 J 。

类似汉字或参与表示汉字的符号:

  • U+2F00-2FDF:中日韩部首及康熙部首(CJK Radicals / Kangxi Radicals)
  • U+2E80-2EFF:中日韩部首扩展(CJK Radicals Supplement)
  • U+2FF0-2FFF表意文字描述符(Ideographic Description Characters)。
  • U+31C0-31EF:中日韩笔画(CJK Strokes)

常见编码

Unicode 有多种编码,见各自条目。

  • 过时的 UTF (即 Unicode Transforming Format , Unicode 传输格式)编码: UTF-1UTF-7
  • 仍在使用的 UTF 编码: UTF-8UTF-16UTF-32
  • 直接使用 USC 码位: USC-2 见 UTF-16 、 USC-4 见 UTF-32 。

使用

Unicode 字符集及其编码几乎无处不在,特别是万维网等面向国际的或者需要使用多语言的场景中,已经到了我觉得不需要说明使用现状的程度。 Unicode 的广泛使用给全球文本交换提供了基础保证,使得真正出现了可以国际化本地化的系统和程序。 而且 Unicode 标准目前还在不断更新,并向其中增加新的字符适应时代发展。


常见字符集字符编码
原始编码 电报码( Morse 电码 BCD 码IBM 卡编码 -
早期二进制码位分配的编码 - BCDICEBCDIC ASCIIISO 646-US 、 ISO 646-IRV)
地区字符编码 - - ISO 8859 : ISO 8859-1 、 ISO 8859-2 、……
- - EUC 类编码,含第一个国标字符集 GB 2312
其编码 EUC-CNIBM 代码页 936)也称 GB 2312
多地区字符编码通过切换串兼容 - - 通用框架: ISO 4873ISO 2022 ,含 ISO-2022-CN
ISO-2022-CN 的简化: HZ 编码
无需切换串的自同步编码 - UTF-EDCBIC 字符集 Unicode / ISO 10646 ,有常见编码 UTF-8UTF-16UTF-32 及废弃编码 UTF-1UTF-7
地区字符编码扩充 - - 国标系列后续:GBK微软代码页 936)、 GB 18030微软代码页 54936
  1. 读作 /ˈjuː.nɪˌkəʊ̯d/