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 规范化」 ▼

🎯使用场景