不可见字符清除工具

查找并删除零宽空格、BOM、软连字符、双向控制字符和不换行空格,并以表格显示被删除的内容。保护隐私。

选项

完全在浏览器中运行,您的数据不会被上传。

什么是 不可见字符清除?

检测并删除那些你看不见、却会破坏代码、搜索、网址和数据导入的字符:零宽空格和连接符、字节顺序标记(BOM)、软连字符、双向控制字符(包括“Trojan Source”攻击中使用的 RLO)以及其他 Unicode 格式字符。NBSP 等特殊空格可以转换为普通空格,表格会列出每个被删除字符的码位和数量。

如何使用 不可见字符清除

  1. 把可疑的文本粘贴到输入框中。
  2. 检查各个选项:替换特殊空格、保留表情符号内部的连接符、删除控制字符。
  3. 从输出中复制干净的文本。
  4. 查看表格,了解发现了哪些隐藏字符。

示例

输入
a​b 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 这样的字符会改变文本的显示方向。它们在某些从右向左的文本中是合理的,但也可能被用来伪装代码或文件名。

不换行空格是不可见的吗?

它看起来像普通空格,但在搜索和比较中的行为不同。开启将不换行空格等特殊空格替换为普通空格后,工具会把它替换成普通空格。

探索更多分类