不可见字符查看器
粘贴文本,把那些平时看不出痕迹的字符全部标出来。工具会标记空格、Tab 和换行,并重点提示真正容易出问题的字符:零宽空格与连接符、字节顺序标记(BOM)、不换行空格和其它 Unicode 空格、软连字符、双向文本控制符,以及 C0、C1 控制码。每个标记都按类别用不同颜色区分,并标注它的 Unicode 名称和码位,旁边的汇总会统计每种字符出现了多少次。发现不该出现的字符时,一键即可删除零宽、控制和双向控制字符,同时保留正常的空格与换行。全部在浏览器内完成,你检查的文本不会被上传。
- 在原位标出空格、Tab、换行、零宽字符、BOM 和 Unicode 控制码
- 按类别用颜色区分每个字符,并标注 Unicode 名称与码位
- 汇总统计每一种隐藏字符,让你看清复制来的片段到底包含什么
- 一键删除零宽、控制和双向控制字符,同时保留正常空格与换行
- 全部在浏览器内运行,粘贴的内容不会上传
字符数
136
不可见
14
种类
12
- ↵换行空白U+000A3
- ⇥制表符空白U+00091
- ␍回车空白U+000D1
- NBSP不换行空格Unicode 空格U+00A01
- SHY软连字符零宽U+00AD1
- ZWSP零宽空格零宽U+200B1
- ZWNJ零宽不连字零宽U+200C1
- ZWJ零宽连字零宽U+200D1
- BOM字节顺序标记零宽U+FEFF1
- U+202C双向控制符双向控制U+202C1
- U+202E双向控制符双向控制U+202E1
- U+0007控制字符控制码U+00071
功能简介
一个专注于看不见字符的检查器:标出它们在文本中的位置,准确命名,并加以统计,让复制来的字符串不再是谜。
- 01
原位标注
每个隐藏字符都在原来的位置以小标记呈现,你能清楚看到一个零宽空格或多余控制码落在可见文字的哪一处。
- 02
准确命名
每个标记都带有 Unicode 名称和码位,从普通空格到从右到左覆盖符都能对上号,方便核对文档或 bug 报告。
- 03
按类别配色
空白、Unicode 空格、零宽字符、双向控制符和控制码各有专属颜色,可疑字符会从普通空白中明显跳出来。
- 04
计数与汇总
汇总列出每一种隐藏字符及其数量,一眼就能确认一段片段里只有一个多余标记,还是有上百个。
- 05
删除不该出现的字符
一键删除零宽、控制和双向控制字符,同时保留空格、Tab 和换行,让你在不破坏排版的前提下清理字符串。
- 06
本地处理,隐私安全
所有检测都在浏览器内完成,你检查的文本(可能包含从别处粘来的敏感内容)不会发送到任何服务器。
如何使用
粘贴要检查的文本,读懂标记,必要时清理。
- 01
在左侧输入框粘贴或输入文本,标注结果会随输入实时更新。
- 02
读懂标记:空格、Tab 和换行以低调方式显示,零宽、控制和双向控制字符则以各自的颜色突出。
- 03
把鼠标悬停在任意标记上可查看它的 Unicode 名称和码位,或在汇总里查看每种字符的总数。
- 04
当普通空格只是干扰、你只关心异常字符时,关掉「显示空格」。
- 05
用「删除隐藏字符」清除零宽、控制和双向控制字符,再把清理后的文本复制回去。
功能说明
核心目标是让隐藏字符一目了然、命名准确,并让你无需猜测就能动手处理。
- 标出空格、Tab、换行和回车,让你看清行尾空格和混用的换行符。
- 识别零宽空格、零宽连字与不连字、单词连接符以及字节顺序标记。
- 提示不换行空格、全角空格等看起来像普通空格的 Unicode 空格。
- 突出双向控制符,包括让文字以误导顺序显示的覆盖符。
- 显示 C0、C1 控制码和删除符,这些字符可能让解析器或终端出错。
- 为每个字符标注 Unicode 名称和码位,便于无歧义地说明问题。
- 统计每一种字符的数量,以及文本中隐藏字符的总数。
- 一步删除零宽、控制和双向控制字符,同时保留正常空白。
- 本地运行、不上传,检查从私密文档复制来的内容也放心。
适合哪些场景
隐藏字符常常通过复制粘贴、富文本编辑器和各种导出溜进来。看见它们,混乱的 bug 就变得直白。
-
排查复制粘贴问题
找出从文档或聊天里混进来、破坏了搜索、匹配或构建的零宽空格或不换行空格。
-
清理代码与配置
在源码、YAML 或 JSON 里找出多余的控制码、不换行空格或开头的字节顺序标记——这些常让解析器莫名其妙地拒绝。
-
检查隐藏文本花招
检查文本中是否有零宽字符或双向覆盖符,它们可能被用来伪装链接、文件名,或让代码看起来与实际运行不一致。
-
发布前规范内容
在内容进入 CMS 或数据库之前,检查粘贴的文字里有没有不该出现的不可见字符,并删除它们。
-
比对两个看似相同的字符串
当两个值看起来一样、比较时却不相等,标出不可见字符就能找到它们真正的差异所在。
-
审查数据导入
检查 CSV 或表格导出中的一行样本,看有没有行尾空白和控制码,避免后续处理被污染。
使用建议
几个习惯能让它更好用,也让清理后的结果更可预期。
- 当一段文字基本都是普通空格、你只想看异常字符时,关掉「显示空格」。
- 删除前先看清 Unicode 名称和码位,有些字符(例如不换行空格)可能是有意为之。
- 记住「删除隐藏字符」会保留空格、Tab 和换行;如果还要修掉行尾空白,需要另行处理。
- 只需确认包含哪些字符时,粘贴一小段有代表性的样本即可,不必整文件粘贴。
- 清理后把文本复制回出问题的地方再检查一次,因为目标环境可能又加入自己的字符。
- 把代码或文件名里的双向覆盖符当成值得深究的警示信号,而不是无关紧要的杂音。
边界与注意事项
了解边界,才不会把它误当成完整的 Unicode 分析器或安全扫描器。
- 它识别的是一组精选的不可见与控制字符,并非完整的 Unicode 属性数据库。
- 它只报告字符和数量,不判断意图,因此被标出的字符并不等于存在攻击。
- 「删除隐藏字符」只删除零宽、控制和双向控制字符,所有空格(包括不换行空格)都保持不变。
- 对很长的文本,原位预览会有上限,但统计仍覆盖全部输入。
- 它检查的是文本,而非文件或编码,无法独立判断文件编码是否不匹配。
- 处理在本地进行,准确性取决于你的浏览器,清理后的文本如何使用由你决定。
常见问题
常见问题包括它检测什么、删除如何运作,以及是否会上传内容。
这里所说的不可见字符指什么?
包括空格、Tab 和换行,以及那些渲染时没有宽度或没有字形的字符:零宽空格与连接符、字节顺序标记、不换行空格和其它 Unicode 空格、软连字符、双向控制符,以及 C0、C1 控制码。
为什么两个看起来一样的字符串表现却不同?
它们往往差在一个看不见的字符上,比如用了不换行空格而非普通空格,或夹了一个隐藏的零宽空格。把两个字符串分别粘进来,标记就会显示它们的差异所在。
「删除隐藏字符」到底删掉什么?
它会删除零宽字符、字节顺序标记、双向控制符、软连字符,以及 C0、C1 控制码;普通空格、Tab 和换行都会保留,文本的排版不变。
可以不标注普通空格吗?
可以。关掉「显示空格」后,普通空格会按正常文字对待,只标注 Tab、换行和更不寻常的字符。
它能识别双向文本花招吗?
能。它会标出从左到右、从右到左标记,以及内嵌、覆盖和隔离控制符——这些正是用来让文字以误导顺序显示的字符。
我的文本会被上传吗?
不会。检测、统计和删除都在你的浏览器标签页内完成,因此检查从私密文件复制来的文本也不会离开你的设备。
更多相关工具
继续使用文本工具集:统计你写下的内容、清理它,或转换大小写。它们都和标出隐藏字符自然搭配。