什么是 Unicode?
Unicode 是一种通用字符编码标准,为世界上每种书写系统的每个字符分配一个唯一的数字(码点)。它旨在表示人类交流中使用的所有字符,包括字母、符号和表情符号。
快速了解
| 全称 | Unicode 标准 |
|---|---|
| 创建时间 | 1991 年(Unicode 1.0) |
| 规范文档 | 官方规范 |
Unicode 工作原理
Unicode 从 1987 年开始开发,旨在解决不兼容字符编码系统的问题。在 Unicode 之前,不同系统使用不同的编码(ASCII、ISO-8859、GB2312 等),导致文本在不同平台上显示不正确。Unicode 为每个字符分配一个唯一的码点,写作 U+XXXX(例如,'A' 是 U+0041)。该标准包括超过 15 万个字符,涵盖 161 种文字。Unicode 可以用不同格式编码:UTF-8(可变宽度,Web 标准)、UTF-16(Windows/Java 使用)和 UTF-32(固定宽度)。
主要特点
- 涵盖所有书写系统的通用标准
- 来自 161 种文字的超过 15 万个字符
- 码点以 U+XXXX 格式书写
- 多种编码形式:UTF-8、UTF-16、UTF-32
- 向后兼容 ASCII(前 128 个码点)
- 包括表情符号、符号和历史文字
常见用途
- 多语言文本处理
- Web 内容国际化
- 数据库字符存储
- 跨平台文本兼容性
- 应用程序中的表情符号支持
示例
Unicode 码点:
字符 码点 名称
A U+0041 拉丁大写字母 A
a U+0061 拉丁小写字母 a
中 U+4E2D 中日韩统一表意文字-4E2D
😀 U+1F600 笑脸
€ U+20AC 欧元符号
UTF-8 编码:
A (U+0041) → 41 (1 字节)
€ (U+20AC) → E2 82 AC (3 字节)
中 (U+4E2D) → E4 B8 AD (3 字节)
😀 (U+1F600) → F0 9F 98 80 (4 字节)
JavaScript:
'A'.codePointAt(0).toString(16) // '41'
String.fromCodePoint(0x4E2D) // '中'