跳转到主要内容

异体字、变体选择符和汉字描述序列

适合谁看:遇到「同一个字但写法不一样,又必须按某种写法显示」的需求,比如户籍、古籍、日本人名的人。

异体字

读音和意思相同、写法不同的字叫异体字,例如「峰」和「峯」。

  • 如果写法差别足够大,Unicode 会给它们不同的码位,可以直接输入;
  • 如果差别很细微,Unicode 认为是同一个字,只给一个码位,具体写法交给字体。见《同一个字,为什么各地写法不同》。

第二种情况下,如果业务必须显示特定写法(例如人名证件要和登记的字形一致),就要用到「变体选择符」。

汉字变体序列(IVS)

做法是在字后面紧跟一个看不见的「变体选择符」(码位 U+E0100 到 U+E01EF),告诉字体「请显示这个字的第几种写法」:

基础字 + 变体选择符 = 一个指定的字形

  • 这些组合需要在 Unicode 的「汉字变体数据库」(IVD)中登记[1][2][3];
  • 已登记的集合包括 Adobe-Japan1、Hanyo-Denshi、Moji_Joho、MSARG、KRName、CAAPH 等,其中 Moji_Joho 集合最近一次在 2026 年 8 月增补;
  • 多数集合服务于日本的人名和行政用字,也有服务于其他地区的集合;在中国大陆的日常中文场景中用得还不多。

使用 IVS 的前提

  1. 字体支持:字体里要有对应的变体字形和映射;不支持的字体会忽略选择符,显示默认字形;
  2. 软件支持:排版软件、浏览器要能正确处理(主流浏览器和操作系统一般都支持);
  3. 数据要保留:复制、存储、截断字符串时不能把选择符丢掉;按「字符数」限制长度时,选择符也会占位置。

汉字描述序列(IDS)

有些字没有编码,或者想向别人说明一个字的结构,可以用「汉字描述字符」描述,例如:

  • ⿰氵力 表示左「氵」右「力」,即「氻」;
  • ⿱艹田 表示上「艹」下「田」。

常用的描述字符:⿰ 左右、⿱ 上下、⿲ 左中右、⿳ 上中下、⿴ 全包围、⿵ 上三包围等。Unicode 15.1 又增加了几个描述字符[4]。

注意:描述序列只是说明,不会自动变成那个字,显示出来就是几个符号排在一起。适合用来记录、沟通、提交缺字反馈,见《发现缺字怎么反馈》。

参考资料(4)
  1. Unicode 汉字变体数据库(IVD),Unicode 联盟
  2. Unicode 技术标准 #37:汉字变体数据库,Unicode 联盟
  3. 中日韩汉字常见问题(英文),Unicode 联盟
  4. Unicode 15.1 新增的汉字描述字符说明,Unicode 联盟