Unicode 里的汉字:基本区和扩展区
适合谁看:想知道一个字的「编码」是什么、为什么有的字在「扩展 B 区」、扩展区的字为什么难处理的人。
码位:每个字的编号
Unicode 给每个字符一个编号,叫码位,写作 U+ 加十六进制数,例如「中」是 U+4E2D。
Unicode 把码位分成 17 个「平面」,每个平面 65,536 个位置:
- 第 0 平面(基本多文种平面):最常用的字符,包括常用汉字;
- 第 2、3 平面:几乎全是汉字扩展区;
- 第 15、16 平面:私用区,见《私用区(PUA)里的字为什么靠不住》。
汉字分布在哪些区块
下表按 Unicode 17.0(2025 年)的数据统计:的数据统计[1]:
| 区块 | 码位范围 | 汉字数 | 所在平面 |
|---|---|---|---|
| 中日韩统一表意文字(基本区) | 4E00–9FFF | 20,992 | 0 |
| 扩展 A | 3400–4DBF | 6,592 | 0 |
| 扩展 B | 20000–2A6DF | 42,720 | 2 |
| 扩展 C | 2A700–2B73F | 4,160 | 2 |
| 扩展 D | 2B740–2B81F | 222 | 2 |
| 扩展 E | 2B820–2CEAF | 5,774 | 2 |
| 扩展 F | 2CEB0–2EBEF | 7,473 | 2 |
| 扩展 I | 2EBF0–2EE5F | 622 | 2 |
| 扩展 G | 30000–3134F | 4,939 | 3 |
| 扩展 H | 31350–323AF | 4,192 | 3 |
| 扩展 J | 323B0–3347F | 4,298 | 3 |
| 兼容区中的 12 个统一汉字 | F900–FAFF | 12 | 0 |
合计 101,996 个统一汉字。2026 年发布的 Unicode 18.0 又在扩展 D 补了 1 个。个[2]。
扩展区为什么难处理
- 在辅助平面:第 0 平面以外的字,在 UTF-8 里占 4 个字节,在 UTF-16(Windows、Java、JavaScript 内部常用)里要用两个单元(「代理对」)表示。只按 3 字节或 1 个单元处理的老程序会出错;
- 字体少:扩展 B 以后的字,多数常用字体都没有;
- 输入法少:很多输入法默认不出扩展区的字。
「统一」是什么意思
中国大陆、台湾、香港、日本、韩国、越南的汉字,如果只是写法细节不同,会合并成一个码位,由字体决定显示哪种写法,见《同一个字,为什么各地写法不同》。真正不同的字(如简繁)才分开编码。
怎么查一个字的编码
参考资料
参考资料(6)
- Unicode 17.
0:https://www.unicode.org/versions/Unicode17.0.0/0,Unicode 联盟 - Unicode 18.0 变更说明,Unicode 联盟