01
1. 隐藏字符为何会带来问题
零宽空格(U+200B)、连接符标记(U+200C、U+200D)、文件开头残留的BOM(U+FEFF)等字符在屏幕上不显示任何内容,但在字符串中确实存在。当它们混入代码或配置文件时,可能导致字符串比较失败、正则表达式匹配出错,或引发JSON、YAML解析错误。
查找隐藏在文本中肉眼不可见的零宽字符、BOM、不换行空格(NBSP)和控制字符,以码位表格形式显示数量,并一键全部移除。
| 码位 | 名称 | 数量 |
|---|
零宽空格(U+200B)、连接符标记(U+200C、U+200D)、文件开头残留的BOM(U+FEFF)等字符在屏幕上不显示任何内容,但在字符串中确实存在。当它们混入代码或配置文件时,可能导致字符串比较失败、正则表达式匹配出错,或引发JSON、YAML解析错误。
该工具可检测零宽字符系列(U+200B~U+200D、单词连接符U+2060)、BOM(U+FEFF)、不换行空格NBSP(U+00A0)、方向标记字符(U+200E、U+200F)、软连字符(U+00AD),以及除制表符和换行符外的C0/C1控制字符。每种字符都会在表格中列出其码位(U+XXXX)、名称和出现次数。
常见于从文字处理软件复制的文本、使用错误编码打开的文件,以及部分即时通讯应用或网站为水印或追踪目的插入的零宽字符。如果这些字符残留在源代码或配置文件中,可能会在diff中显示为莫名其妙的改动,或导致构建失败,因此在粘贴到敏感位置之前,先用该工具扫描一遍是很有必要的。