全字库 CNS11643 的 CNS 查询与 Unicode 查询有什么不同?

结论先说:CNS 查询和 Unicode 查询查的是同一个汉字,区别在于用哪套编码体系来定位和显示这个字。如果你手上有的是 CNS 码(例如 1-6651),用 CNS 查询;如果你手上的是 Unicode 码位(例如 U+88D8),用 Unicode 查询。两者在多数常用字上能互相查到,但遇到罕用字、异体字或不同字面版本时,结果可能不完全对应。

两套编码体系的基本差异

CNS 11643 是台湾地区制定的汉字编码标准,全字库(cns11643.gov.tw)就是围绕这套标准建置的字码资料库。Unicode 则是国际通用的字符编码标准,涵盖范围更广,不只汉字。

对比维度 CNS 查询 Unicode 查询
编码体系 台湾 CNS 11643 标准 国际 Unicode 标准
码的形态 字面号 + 码位,如 1-6651 码位,如 U+88D8
主要用途 台湾地区中文系统、户政姓名用字 跨平台、跨语言的通用文本处理
覆盖侧重 依字面分层收录,含大量罕用字与异体字 以国际统一码位收录,部分罕用字可能落在扩展区

全字库首页的「字码查询」区同时列出了 CNS 查询、Unicode 查询、Big5 查询、注音查询、笔画查询、仓颉查询等多种入口,说明这些查询方式是并列的,各自对应不同的输入条件。

同一个字在两种查询下的对应关系

以首页「每日一字」展示的「裘」为例,它给出的 CNS 码是 1-6651。这个字在 Unicode 里同样有对应码位。也就是说:

  • 用 CNS 查询输入 1-6651,能查到「裘」及其字形资讯;
  • 用 Unicode 查询输入该字对应的 Unicode 码位,也能查到同一个字。

对应关系不是永远一一对等。CNS 11643 按字面分层(第 1 字面为常用字,后续字面收录次常用、罕用、异体等),同一个 Unicode 码位在不同字面可能对应不同字形版本;反过来,一个 CNS 码也可能对应到 Unicode 的某个码位,但字形呈现依字库版本而异。全字库的「最新消息」里就有多则「字形新增异动公告」和「字形调整与新增清单」,说明字形本身会随版本调整。

怎么选:按你手上的码来决定

  • 手上有 CNS 码(例如从台湾地区公文、户政系统、旧资料库导出):用 CNS 查询。
  • 手上有 Unicode 码位(例如从网页源码、程序编码、国际文档中取得):用 Unicode 查询。
  • 只有字形、不知道任何码:改用注音查询、笔画查询、仓颉查询、部首查询或 IDS(部件组合)查询来反查。
  • 要处理台湾地区姓名用字、户政罕用字:优先用 CNS 查询,因为这类字在 CNS 的字面分层里有专门收录,公告中也提到「增编 2 个字形(户政姓名用字)」。
  • 要做跨平台、跨语言的文本处理:以 Unicode 查询的结果为准。

查询时的常见卡点

  • 码的格式别写错:CNS 码通常写成「字面号-码位」,如 1-6651;Unicode 码位通常写成 U+ 加十六进制,如 U+88D8。格式不对会查不到。
  • 罕用字可能只在某一侧查得到:部分异体字、罕用字在 CNS 里有收录,但 Unicode 对应关系需要确认;反之亦然。
  • 字形会更新:全字库会发布字形新增与调整公告,同一码位在不同时间查到的字形可能不同,做长期专案时要记录查询时的版本或日期。
  • 查询入口不止两个:首页还提供 Big5 查询、拼音查询、符号索引、拼音文字索引,以及「教育部本土语言参考字表」和「政府资料开放平台-全字库资料集」,需要批量或程式化取用时可以走开放资料集。

简单记:CNS 查询认台湾标准码,Unicode 查询认国际码位;有哪个码就用哪个查询,没有码就用字形类查询反查。

cns11643.gov.tw