请勿使用“兼容表意文字区”的汉字
Unicode 之初收录汉字遵循两个基本原则:表意文字认同原则和字源分离原则。
所谓表意文字认同原则,即“只对字,不对形”编码,将同一字的不同字形(即异体字,不适用繁简体)合并。例如“房”字的第一笔,在中日韩的写法都不同,但它本身是同一个字,只给一个编码,而写法的不同交由字体进行区分。
字源分离原则,是指一个字源中同时收录了同一个字的不同字形,则给予两个字形分别编码。例如:“戶”、“户”、“戸”三个字。
基于这两个原则,Unicode 能大幅减少收录汉字的数量。然而这两个原则是相互对立的,字源分离原则破坏了认同原则中的“只对字,不对形”编码之原则,使某些汉字获得两个或多个编码,亦遭受不少批评。例如“値”和“值”。
所以,在 Unicode 1.0 收录了 20915 个汉字(20902个基本汉字 + 汉字〇 + 12个兼容表意汉字)之后,字源分离原则被放弃。此后,同一字源中不同写法的汉字,正统的编入正式编码区,而异体字则编入“兼容表意文字区”。
Unicode 12.1 兼容表意文字编码区域:
0号平面 F900-FAFF 中日韩兼容表意文字 (CJK Compatibility Ideographs)
2号平面 2F800-2FA1F 中日韩兼容表意文字增补 (CJK Compatibility Ideographs Supplement)
-------------------------
Unicode 中汉字的整理收录是由 表意文字小组(英语:The Ideographic Rapporteur Group,简称 IRG)负责,小组成员来自中国大陆、台湾、香港、澳门,以及日本、韩国、朝鲜、越南、马来西亚、新加坡等。
-------------------------
简言之,“兼容表意文字区”的汉字就是异体字。按说,这些兼容汉字应该以其原本写法显示在屏幕上,而事实并非如此,大部分字体在处理这些兼容汉字时都是按其对应的正统字形呈现。例如“更”和“更”两个字,大部分字体显示的一模一样,然而前者是U+F901兼容汉字,后者才是U+66F4正统汉字。不查编码还真不容易区分,我们可以看看前字的正确异体写法:
见 Unicode 官方 兼容表意文字PDF文件
-------------------------
有日本和韩国的朋友在使用“汉字拼音转换”工具时,说到一些常用字无法标注拼音,后来发现他们使用了兼容表意文字区的汉字,在此也提醒学习汉语的朋友不要使用兼容表意文字区的异体汉字(可能在当地该字被用作正规汉字,例如上图中字下面标有K0-4B56,说明这是韩国提交的汉字,在中日韩文字编码查询页可查到“更”字在韩国KS_C_5601-1987编码中是4B56),这些异体汉字在字典中查不到,无法标注拼音,且存在兼容性问题,更麻烦的是:大多数字体让它们和正统汉字长得一模一样,让人傻傻分不清楚。