文本与编码
Unicode 与国际化工具
复制粘贴来的文本里藏着看不见的零宽字符、两份看起来一样的字符串却比较不相等、乱码文本要猜出原始编码,这些国际化相关的坑往往比普通文本问题更隐蔽。Unicode 字符检查器能查看文本的 Unicode 码点、名称与多种编码表示;不可见字符检测找出零宽字符、NBSP 等符号并可以清理;Unicode 混淆字符检测检测形近的混淆字符,标出混合文字脚本的提示。
字符串看起来相同却不相等,通常是规范化形式不同,Unicode 规范化工具能对照 NFC、NFD、NFKC、NFKD 四种形式看清区别。乱码文本用乱码诊断与编码修复比较不同编码的解码结果,定位对应的原始字节。做多语言界面时,BCP 47 语言标签解析拆解语言标签并核验子标签,ICU 消息格式测试器用边界数值测试消息模板的复数分支。
9 个工具
Unicode / 国际化工具常见问题
两个看起来一样的字符串,为什么程序判断不相等?
常见原因是 Unicode 规范化形式不同,同一个字符可能有多种等价的编码方式,比如带音调符号的字母可以是一个组合字符或两个码点拼成。用 Unicode 规范化工具对照 NFC、NFD、NFKC、NFKD 四种形式,就能看出两个字符串在底层编码上到底差在哪里。
文本里的乱码是怎么产生的,能还原吗?
乱码大多是用错误的字符编码解码了字节数据,比如把 GBK 编码的内容当 UTF-8 解码。乱码诊断与编码修复会比较不同编码方案解码同一段字节的结果,帮你找到原始字节对应的正确编码,从而定位问题根源并尝试还原成可读文本。
怎么发现文本里藏着的零宽字符?
这类字符肉眼完全看不出来,却可能导致字符串比较失败或被用来做钓鱼域名。用不可见字符检测能找出零宽字符、NBSP 等不可见符号,并直接标出位置方便清理,怀疑用户名或域名里被人塞了隐藏字符时,先用这个工具查一遍比较稳妥。