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」