Unicode 规范化(NFC、NFD、NFKC、NFKD)
把文本规范化为 NFC、NFD、NFKC 或 NFKD,并查看码点的变化。可修复来自 macOS 文件名的分解韩文,以及全角字符。
已分解的韩文字母(macOS 保存文件名的方式)被重新合成为音节,所以像 ㅎㅏㄴㄱㅡㄹ 这样字母分离的文本会重新显示为 한글。
| 字符 | 输入 | NFC | NFD | NFKC(不同时才显示) |
|---|---|---|---|---|
| é | U+0065 U+0301 | U+00E9 | U+0065 U+0301 | — |
| 한 | U+1112 U+1161 U+11AB | U+D55C | U+1112 U+1161 U+11AB | — |
| 글 | U+1100 U+1173 U+11AF | U+AE00 | U+1100 U+1173 U+11AF | — |
| fi | U+FB01 | U+FB01 | U+FB01 | fi (U+0066 U+0069) |
| ① | U+2460 | U+2460 | U+2460 | 1 (U+0031) |
| A | U+FF21 | U+FF21 | U+FF21 | A (U+0041) |
| B | U+FF22 | U+FF22 | U+FF22 | B (U+0042) |
| C | U+FF23 | U+FF23 | U+FF23 | C (U+0043) |
看起来相同的文本,可能以不同的码点存储:“é”可以是一个字符(U+00E9),也可以是“e”加一个组合重音符;韩文音节 한 可以是 U+D55C,也可以是三个字母。当两个系统处理方式不一致时,搜索会失败,出现重复项,Mac 上的文件名到了 Windows 上会显示成分离的字母。这个工具能把文本转换为四种 Unicode 规范化形式中的任意一种,并准确显示哪些码点发生了变化。
使用方法
- 粘贴出问题的文本、文件名或数据。
- 要组合就选 NFC(适合 Web、Windows 和数据库),要分解就选 NFD。
- 如果还想为搜索折叠全角字母、连字和带圈数字,请使用 NFKC 或 NFKD。
- 复制结果,并查看码点表。
计算公式
NFD = canonical decomposition; NFC = NFD followed by canonical composition. NFKD and NFKC use compatibility decomposition instead, which also maps characters such as fi, ①, ² and A to their plain forms.
韩文音节按算法分解:S = 0xAC00 + (L × 21 + V) × 28 + T,所以 한(U+D55C)变成 ᄒ U+1112 + ᅡ U+1161 + ᆫ U+11AB。规范化不会改变普通 ASCII。转换使用浏览器内置的 Unicode 表(String.prototype.normalize);对已有字符的规范化受 Unicode 稳定性策略约束而保持固定,所以不同版本的结果一致。
示例
“e”+ U+0301(组合锐音符)在 NFC 中变成 U+00E9——2 个码点变成 1 个。한 在 NFD 中是 U+1112 U+1161 U+11AB,3 个码点,UTF-8 为 9 字节而不是 3 字节。NFKC 把“fi ① A”变成“fi 1 A”。
常见问题
为什么 Mac 上的韩文文件名在 Windows 上看起来是坏的?
macOS(HFS+,以及 APFS 上的许多应用)以分解形式保存名称,所以 한글 被保存为六个字母。Windows 期望的是组合后的文本,因此把各部分分开显示。把名称转换为 NFC 就能解决;在解压时做这一步的 zip 工具也有帮助。
应该保存哪种形式?
NFC。它是 W3C 对 Web 的推荐,与大多数系统上键盘产生的形式一致,也最紧凑。请在收到输入时统一规范化一次。
用户名可以放心使用 NFKC 吗?
它适用于比较和搜索(会折叠外形相似的兼容字符),但会丢失信息,所以请保存原文,并比较 NFKC 形式。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/unicode-normalizer-tool/
引用此工具
kakaoCalc. (2026, November 8). Unicode 规范化(NFC、NFD、NFKC、NFKD). https://kakao.mobile/zh/tools/unicode-normalizer-tool/
“Unicode 规范化(NFC、NFD、NFKC、NFKD).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/unicode-normalizer-tool/.