虽然这“⼀⼝”和那“一口”大体是相似的,不过仔细一点儿看就会发现它们的字体并不相同(如果字体支持的不够的话,很有可能这“⼀⼝”还会显示不出来)。这里,如果把文字拷贝到代码中获取一下他们的unicode编码,就会发现,这“⼀⼝”对应的是\u2f00\u2f1d,而那“一口”对应的是\u4e00\u53e3。
为什么这两口会有这样的差别呢,其实谨慎的说,这“⼀⼝”并不是汉字,而是汉字的部首,在unicode的标准中有一个专门的分类来标识部首,叫做“KANGXI RADICAL”。在这里看到“部首”不需要惊慌,打开家里的《新华字典》翻到部首检字表,那个部首的列表,就是我们这里说到的unicode的部首的列表,可能在总数上略微有些差别,但是大体的意思是没问题的。在unicode中,康熙部首(KANGXI RADICAL)总共有214个,编码范围是从U+2F00到U+2FD5,内容是根据《康熙字典》来定义的,具体可以参考维基百科的康熙字体词条。而我们一般所用的汉字,在unicode中是在主要是指CJK Unified Ideographs,主要的范围是从U+4E00到U+9FFF,当然还包括很多扩展范围,具体可以也可以看到维基百科的对应词条。
以上就是这“⼀⼝”和那“一口”的区别,但是除了区别之外,这“⼀⼝”和那“一口”还是有联系的,这个联系就是unicode的正规化。unicode正规化根据每一个字的具体的含义,把一些相同字的不同变形都对应到了同一个字符上,这样就可以方便一些本来应该是同一个字的不同字符的比较。unicode正规化也会分为几种类型,分别是NFC,NFKC,NFD,NFKD,这些类型的命名中NF就是normal form的缩写,C(Canonical)表示是规范的,K(Compitable)表示兼容的,也就是一些相对通用但是并非标准的也可以涵盖,D(Decomposition)表示分解,比如㉂(U+3242)这个字符的NFKD就是"(自)",从一个字符变成了三个字符。那么现在就可以说回这“⼀⼝”和那“一口”了,如果把这“⼀⼝”转换成而来NFKC或者NFKD的形式,就会成为那“一口”。在一些汉字处理的操作中,因为这“⼀⼝”可能字体的支持没有那么好,把文章整体处理成那“一口”,也是一种保障体验的方法。
下面把全部的KANGXI RADICAL的unicode字符以及该字符所对应的不同的正规化的形式,都列在了下面的表格上
Radical | Unicode | NFC | NFKC | NFD | NFKD |
⼀ | U+2F00 | ⼀ (U+2F00) | 一 (U+4E00) | ⼀ (U+2F00) | 一 (U+4E00) |
⼁ | U+2F01 | ⼁ (U+2F01) | 丨 (U+4E28) | ⼁ (U+2F01) | 丨 (U+4E28) |
⼂ | U+2F02 | ⼂ (U+2F02) | 丶 (U+4E36) | ⼂ (U+2F02) | 丶 (U+4E36) |
⼃ | U+2F03 | ⼃ (U+2F03) | 丿 (U+4E3F) | ⼃ (U+2F03) | 丿 (U+4E3F) |
⼄ | U+2F04 | ⼄ (U+2F04) | 乙 (U+4E59) | ⼄ (U+2F04) | 乙 (U+4E59) |
⼅ | U+2F05 | ⼅ (U+2F05) | 亅 (U+4E85) | ⼅ (U+2F05) | 亅 (U+4E85) |
⼆ | U+2F06 | ⼆ (U+2F06) | 二 (U+4E8C) | ⼆ (U+2F06) | 二 (U+4E8C) |
⼇ | U+2F07 | ⼇ (U+2F07) | 亠 (U+4EA0) | ⼇ (U+2F07) | 亠 (U+4EA0) |
⼈ | U+2F08 | ⼈ (U+2F08) | 人 (U+4EBA) | ⼈ (U+2F08) | 人 (U+4EBA) |
⼉ | U+2F09 | ⼉ (U+2F09) | 儿 (U+513F) | ⼉ (U+2F09) | 儿 (U+513F) |
⼊ | U+2F0A | ⼊ (U+2F0A) | 入 (U+5165) | ⼊ (U+2F0A) | 入 (U+5165) |
⼋ | U+2F0B | ⼋ (U+2F0B) | 八 (U+516B) | ⼋ (U+2F0B) | 八 (U+516B) |
⼌ | U+2F0C | ⼌ (U+2F0C) | 冂 (U+5182) | ⼌ (U+2F0C) | 冂 (U+5182) |
⼍ | U+2F0D | ⼍ (U+2F0D) | 冖 (U+5196) | ⼍ (U+2F0D) | 冖 (U+5196) |
⼎ | U+2F0E | ⼎ (U+2F0E) | 冫 (U+51AB) | ⼎ (U+2F0E) | 冫 (U+51AB) |
⼏ | U+2F0F | ⼏ (U+2F0F) | 几 (U+51E0) | ⼏ (U+2F0F) | 几 (U+51E0) |
⼐ | U+2F10 | ⼐ (U+2F10) | 凵 (U+51F5) | ⼐ (U+2F10) | 凵 (U+51F5) |
⼑ | U+2F11 | ⼑ (U+2F11) | 刀 (U+5200) | ⼑ (U+2F11) | 刀 (U+5200) |
⼒ | U+2F12 | ⼒ (U+2F12) | 力 (U+529B) | ⼒ (U+2F12) | 力 (U+529B) |
⼓ | U+2F13 | ⼓ (U+2F13) | 勹 (U+52F9) | ⼓ (U+2F13) | 勹 (U+52F9) |
⼔ | U+2F14 | ⼔ (U+2F14) | 匕 (U+5315) | ⼔ (U+2F14) | 匕 (U+5315) |
⼕ | U+2F15 | ⼕ (U+2F15) | 匚 (U+531A) | ⼕ (U+2F15) | 匚 (U+531A) |
⼖ | U+2F16 | ⼖ (U+2F16) | 匸 (U+5338) | ⼖ (U+2F16) | 匸 (U+5338) |
⼗ | U+2F17 | ⼗ (U+2F17) | 十 (U+5341) | ⼗ (U+2F17) | 十 (U+5341) |
⼘ | U+2F18 | ⼘ (U+2F18) | 卜 (U+535C) | ⼘ (U+2F18) | 卜 (U+535C) |
⼙ | U+2F19 | ⼙ (U+2F19) | 卩 (U+5369) | ⼙ (U+2F19) | 卩 (U+5369) |
⼚ | U+2F1A | ⼚ (U+2F1A) | 厂 (U+5382) | ⼚ (U+2F1A) | 厂 (U+5382) |
⼛ | U+2F1B | ⼛ (U+2F1B) | 厶 (U+53B6) | ⼛ (U+2F1B) | 厶 (U+53B6) |
⼜ | U+2F1C | ⼜ (U+2F1C) | 又 (U+53C8) | ⼜ (U+2F1C) | 又 (U+53C8) |
⼝ | U+2F1D | ⼝ (U+2F1D) | 口 (U+53E3) | ⼝ (U+2F1D) | 口 (U+53E3) |
⼞ | U+2F1E | ⼞ (U+2F1E) | 囗 (U+56D7) | ⼞ (U+2F1E) | 囗 (U+56D7) |
⼟ | U+2F1F | ⼟ (U+2F1F) | 土 (U+571F) | ⼟ (U+2F1F) | 土 (U+571F) |
⼠ | U+2F20 | ⼠ (U+2F20) | 士 (U+58EB) | ⼠ (U+2F20) | 士 (U+58EB) |
⼡ | U+2F21 | ⼡ (U+2F21) | 夂 (U+5902 |