不可见字符清除工具
查找并删除零宽空格、BOM、软连字符、双向控制字符和不换行空格,并以表格显示被删除的内容。保护隐私。
完全在浏览器中运行,您的数据不会被上传。
什么是 不可见字符清除?
检测并删除那些你看不见、却会破坏代码、搜索、网址和数据导入的字符:零宽空格和连接符、字节顺序标记(BOM)、软连字符、双向控制字符(包括“Trojan Source”攻击中使用的 RLO)以及其他 Unicode 格式字符。NBSP 等特殊空格可以转换为普通空格,表格会列出每个被删除字符的码位和数量。
如何使用 不可见字符清除
- 把可疑的文本粘贴到输入框中。
- 检查各个选项:替换特殊空格、保留表情符号内部的连接符、删除控制字符。
- 从输出中复制干净的文本。
- 查看表格,了解发现了哪些隐藏字符。
示例
ab c
ab c
已删除:U+00A0 NO-BREAK SPACE(替换为空格)、U+200B ZERO WIDTH SPACE、U+FEFF ZERO WIDTH NO-BREAK SPACE (BOM)
何时使用 不可见字符清除
适用于代码因“unexpected character”而失败、两个看似相同的字符串不匹配、CSV 表头带有 BOM,或复制的文本含有隐藏的追踪字符时。删除 ZWJ/ZWNJ 可能改变波斯语、印地语或马拉雅拉姆语等有意使用它们的文字的显示效果,所以处理这些语言时,请先查看表格再使用结果。
不可见字符清除 的工作原理
每个码位都会与一份已知不可见字符的列表(U+200B–U+200F、U+202A–U+202E、U+2060–U+2064、U+2066–U+206F、U+FEFF、U+00AD、U+180E、谚文填充符等)以及 Unicode 类别 Cf(格式字符)进行比对。匹配到的字符会被删除并计数。开启对应选项后,特殊空格(U+00A0、U+2000–U+200A、U+202F、U+205F、U+3000)会被替换为 U+0020。开启“保留表情符号内部的连接符”时,两个象形符号之间的 U+200D 和表情标签字符会被保留,这样 👩💻 之类的序列不会散开。除制表符、换行符和回车符之外的控制字符也可以删除。
常见用例
- 修复因粘贴了零宽空格而出错的代码或 JSON
- 删除 CSV 第一个表头中的 BOM
- 在代码审查中检测双向覆盖字符
- 清理从网站、PDF 或聊天应用复制的文本
- 在比较字符串之前规范化不换行空格
安全提示
隐藏的双向字符和零宽字符被用于同形字攻击和“Trojan Source”攻击,让代码或链接看起来与实际不同。删除表格能帮你看到它们;处理仅在你的浏览器中进行。
常见问题
什么是零宽空格?
U+200B 是一个没有宽度的字符,用来标记可能的换行位置。它不可见,却会让字符串不相等,还可能破坏代码和网址。
这会破坏我的表情符号吗?
开启保留表情符号内部的连接符(默认)时不会。像 👩💻 和旗帜序列这样的表情依赖隐藏的连接符和标签字符,这些会被保留。
什么是双向控制字符?
像 U+202E RIGHT-TO-LEFT OVERRIDE 这样的字符会改变文本的显示方向。它们在某些从右向左的文本中是合理的,但也可能被用来伪装代码或文件名。
不换行空格是不可见的吗?
它看起来像普通空格,但在搜索和比较中的行为不同。开启将不换行空格等特殊空格替换为普通空格后,工具会把它替换成普通空格。