Unicode 规范化
将同一字符的不同表示统一的处理。有 NFC、NFD、NFKC、NFKD 四种形式。
Unicode 规范化是将表示同一字符的不同码位序列转换为统一形式的处理。例如,日语字符"が"可以用单个码位 (U+304C) 表示,也可以用"か"+ 组合浊点 (U+304B + U+3099) 表示。
规范化有四种形式:NFC (合成)、NFD (分解)、NFKC (兼容合成) 和 NFKD (兼容分解)。Web 推荐使用 NFC,JavaScript 提供 String.normalize() 进行转换。Unicode 文本处理书籍详细介绍了规范化。
不进行规范化时,外观相同的字符串可能在比较时不相等,这会导致数据库搜索和文件名比较出现问题。
macOS 文件系统 (APFS/HFS+) 使用 NFD,可能与其他操作系统产生文件名兼容性问题。国际化编程书籍解释了规范化的实用技巧。