「Unicode」- 统一码 | 国际码 | 单一码

认识

统一码,Unicode,万国码,单一码,是计算机科学领域里的业界标准,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。简单来说,Unicode 就是个巨大的“字符字典”,它为每个现实世界中的字符分配一个唯一的编号(称为“码点”),无论这个字符来自哪种语言、什么平台、什么程序,以方便计算机程序的处理。

组成

我们可以将 Unicode 理解为一个由三部分构成的完整体系:

  1. 字典(字符集):一个包含了全球几乎所有字符及其唯一ID(码点)的巨大列表。
  2. 编码(打包方式):规定了如何将这些ID(码点)转换成二进制数据(字节)以便计算机存储和传输,其中 UTF-8 是最重要的方式。
  3. 使用说明书(标准附件):提供了关于如何正确显示、处理、比较这些字符的详细规则和数据。】

字符集(核心内容)

这是 Unicode 最基础的部分,即它包含了哪些字符。这些字符来自:

  • 现代语言文字:
    • 拉丁字母(英文字母A-Z、带重音符号的字母等)
    • 汉字(包括简体字、繁体字、日本汉字、韩国汉字等,统一编码,称为“中日韩统一表意文字”)
    • 日文(平假名、片假名)
    • 韩文(谚文音节)
    • 阿拉伯字母
    • 梵文字母(天城文等)
    • 希腊字母
    • 西里尔字母(俄语、保加利亚语等)
    • …以及全球绝大多数正在使用的书写系统的字符。

  • 历史文字和符号:
    • 古埃及象形文字
    • 楔形文字
    • 甲骨文
    • 哥特字母
    • 等等。这些主要用于学术研究。

  • 符号:
    • 标点符号(各种语言的引号、破折号等)
    • 数学符号(±, ÷, ∞, ∫, ∑ 等)
    • 技术符号(计算机相关符号)
    • 几何形状(▲, ◯, ◆ 等)
    • 装饰符号(♥, ★, ☺ 等)
    • 箭头(→, ←, ↑, ↓ 等)
    • 货币符号(¥, £, €, ₿ 等)
    • Emoji 表情符号(😀, 🍎, 🚗, 🏳️‍🌈 等)—— Emoji 也是 Unicode 字符集的一部分!

  • 控制字符和格式字符:
    • 用于控制文本流向的字符,如“从左至右标记”、“从右至左标记”。
    • 零宽连接符、零宽非连接符等,用于复杂文本的渲染(如阿拉伯语连字)。

编码方案(如何存储和传输)

光有字符编号还不够,计算机需要知道如何将这些编号(码点)转换成字节序列进行存储和传输。Unicode 定义了以下几种主要的编码方案:

  • UTF-8:目前最主流、最推荐的编码。
    • 特点:可变长度(1到4个字节),完美兼容 ASCII(ASCII 字符在 UTF-8 中保持不变)。
    • 优点:节省空间(尤其对于英文文本),无字节序问题,是网页(超过98%)、电子邮件、大多数现代操作系统的默认编码。

  • UTF-16:
    • 特点:使用2个或4个字节表示一个字符。
    • 应用:曾是 Windows 操作系统、Java 和 JavaScript 早期版本的内部编码。

  • UTF-32:
    • 特点:使用固定的4个字节表示每一个字符。
    • 优点:简单直观,每个字符长度相同。
    • 缺点:非常浪费存储空间和带宽,实际应用较少。

  • 其他:如 UCS-2(已过时,被 UTF-16 取代)。

标准附件和数据库(如何正确使用字符)

Unicode 不仅仅是一个字符列表,它还提供了一套庞大的数据库和规则,以确保字符能被正确地显示、处理、比较和排序。

  • Unicode 字符数据库:一个包含所有字符属性的文本文件集合,例如:
    • 字符的名称
    • 字符的类别(是字母、数字、标点等)
    • 字符的大小写映射(例如 ‘a’ 和 ‘A’)
    • 字符的双向算法属性(用于混合从左至右和从右至左的文字,如阿拉伯语和英语混排)

  • Unicode 排序算法:定义了如何根据不同语言和文化的规则对文本进行排序(称为“区域设置敏感排序”)。

  • 双向算法:定义了如何显示混合了从左至右(如英文)和从右至左(如阿拉伯文、希伯来文)的文本。

  • 文本分段规则:定义了如何确定词、句、行的边界,这对于换行、光标移动和文本选择至关重要。

性质

正是由于 Unicode 的存在,我们才能在一台设备上无障碍地浏览包含多种语言的网页、使用各种表情符号,并在全球范围内进行数字交流。它是实现全球化和信息无障碍共享的基石技术。

参考

百度百科 / 统一码 / https://baike.baidu.com/item/%E7%BB%9F%E4%B8%80%E7%A0%81/2985798
DeepSeek / Unicode 包含哪些内容