0

解码结果

非正规化
非正规化(兼容)

编码结果

正规化
正规化(兼容)

关于 Unicode 正规化 (Unicode Normalization)

Unicode 正规化是指将字符进行分解或合成。在 Unicode 中,有些字符看起来相同但存在多种表示方法。例如,“â”既可以用一个码点“â”(U+00E2) 表示,也可以用两个分解的码点“a”(U+0061) 和“ ̂”(U+0302)(基字符 + 结合字符)表示。前者称为预组合字符,后者称为结合字符序列 (combining character sequence, CCS)。

Unicode 正规化有以下几种类型。

正规化形式说明示例
Normalization Form D (NFD)规范等价分解“â”(U+00E2) -> “a”(U+0061) + “ ̂”(U+0302)
Normalization Form KD (NFKD)兼容等价分解“fi”(U+FB01) -> “f”(U+0066) + “i”(U+0069)
Normalization Form C (NFC)规范等价分解后重组“â”(U+00E2) -> “a”(U+0061) + “ ̂”(U+0302) -> “â”(U+00E2)
Normalization Form KC (NFKC)兼容等价分解后,规范等价重组“fi”(U+FB01) -> “f”(U+0066) + “i”(U+0069) -> “f”(U+0066) + “i”(U+0069)

规范等价 (Canonical Equivalence) 是在保持视觉和功能等价的状态下进行正规化。例如,“â” <-> “a” + “ ̂”

兼容等价 (Compatibility Equivalence) 除了规范等价外,还包括语义上不同形式的字符的正规化。例如,“fi” -> “f” + “i”