Unicode 規範化

🌐 Unicode Normalizer

📐 工作原理與說明

Normalise text with NFC, NFD, NFKC or NFKD to unify visually identical characters before comparison, search or storage.

💡 NFC: 規範化形式 C(合成);NFD: 規範化形式 D(分解); NFKC: 相容性合成;NFKD: 相容性分解。

📋 4 種規範化結果對比

NFC(規範合成)
先分解再按規範順序合成
-
NFD(規範分解)
按規範分解為基本字元+組合符
-
NFKC(相容性合成)
相容性分解後合成
-
NFKD(相容性分解)
按相容性分解
-
原文長度: 0 NFC 長度: 0 NFD 長度: 0 NFKC 長度: 0 NFKD 長度: 0

📚 深度解析:Unicode 歸一化

💡 常見使用場景

  • 去重前歸一:把「é」的多種編碼(預組合/分解)統一,避免同一字元被當兩條。
  • 搜尋匹配:歸一後「café」與「café」(不同編碼) 才能正確相等。
  • 儲存統一:入庫前用 NFC,保證跨系統一致顯示。
NFC 與 NFD 統一
「é」可寫作預組合 U+00E9 或 e+組合聲調 U+0301;NFC 歸併為前者、NFD 拆為後者。歸一後兩處「café」字串相等,去重與比對才正確。

❓ 常見問題(FAQ)

NFC/NFD/NFKC 怎麼選?
儲存與比對常用 NFC;NFKC 還會相容等價(如全形轉半形、羅馬數字轉字母),適合清洗但可能改變語義,謹慎用於展示。
歸一會丟資訊嗎?
NFC/NFD 不丟;NFKC 可能把「①」變「1」、全形變半形,改變原意,僅用於內部匹配時不要直接展示 NFKC 結果。
⚠️ 使用說明與注意事項
📖關於「Unicode 規範化」 ▼

🎯使用場景