不可见字符检测器
将任意文本粘贴后,检测器会报告其中包含的所有不可见字符:零宽空格、方向标记、BOM标识符、软连字符、非折行空格,以及那些看似空白却会干扰搜索、差异分析及复制粘贴功能的Unicode控制码点组合。每次识别结果均附带对应的代码点(U+200B)、官方Unicode名称及其在字符串中的位置信息,从而帮助您精准定位潜在错误所在位置以便进行修复。
如何检测隐藏字符
-
1
粘贴文本
输入可疑字符串,一段代码片段、复制的消息或配置值。
-
2
运行扫描
该工具会遍历所有代码点,并标记出符合不可见/格式字符列表的代码点。
-
3
审阅报告
每个命中项均显示其位置(以1为索引)、`U+HHHH`格式下的代码点以及Unicode名称(零宽空格、BOM等)。
-
4
清理文本
使用“替换”操作移除或显示隐藏字符,随后将清理后的版本重新粘贴。
不可见字符及其来源
这些字符的存在都有其合理用途(如文本排版、书写方向或字符组合)。当它们脱离设计初衷,出现在代码、配置文件、搜索查询或用户名中时,就会成为问题。
检测器需要识别的字符
| 代码点 | 名称 | 通常潜入的位置 |
|---|---|---|
U+200B |
零宽度空格 | 富文本编辑器、文字处理软件 |
U+200C |
零宽度非连接符 | 波斯语、印地语排版 |
U+200D |
零宽度连接符 | 表情符号序列、印度系文字(Indic) |
U+200E |
左到右标记 | 同时包含LTR和RTL脚本的文本 |
U+200F |
从右向左标记 | 相同 |
U+202A..E |
嵌入/覆盖 | 相同;有时被恶意使用(特洛伊木马来源) |
U+2028 |
行分隔符 | 从Word复制,会破坏 JSON 编码 |
U+2029 |
段落分隔符 | 相同 |
U+FEFF |
字节顺序标记 | 在记事本中保存为 UTF-8 带 BOM 的文件 |
U+00A0 |
不断开空格 | 来自 Word 的排版空白 |
U+00AD |
软连字符 | 富文本中的连字符使用提示 |
隐藏字符错误的常见症状
- “本应”相等的字符串比较结果却不相等。 将这些值复制到本工具中并检查字节数。
- 肉眼看起来能匹配、但在代码中却失效的正则表达式。 通常是伪装成空格的
U+00A0。 - JSON 解析器在处理粘贴的载荷时崩溃。 通常是开头的 BOM,或字符串字面量中的
U+2028,JavaScript 在 JSON 中会拒绝该字符。 - SEO 标题长度不正确。 零宽空格会在没有任何可见变化的情况下让标题超出长度限制。
特洛伊木马的来源角度
双向覆盖字符(U+202E、U+2066……U+2069)可使源代码在编译时按一种顺序执行,而在实际运行时却呈现另一种顺序,这属于“特洛伊源码”攻击类型。若需审阅来自不可信贡献者的代码,请在合并前使用该检测工具分析其代码差异。
常见问题
记事本及部分旧版 Windows 工具默认使用“UTF-8 带 BOM”格式。该BOM文件(U+FEFF)适用于Windows应用程序,但会破坏许多shell脚本流程、PHP文件(其内容会在<?php标签前作为输出输出)以及 JSON 解析器。
它在屏幕上看起来像一个普通的字符空间,但实际行为却有所不同:不允许换行,并且在所有语言中均不被大多数 \s regex 变体所支持。这类字符常出现在从富文本源复制的文件路径、电子邮件地址及用户名中。
并非总是如此。在阿拉伯文、波斯文或天城体文本中,零宽度连接符和非连接符在语义上是必需的;而在代码、配置文件及大多数英文文本中,则可随意省略;对于自然语言内容,则应在省略前使用检测工具进行检查。
不,该分析仅针对当前请求执行,响应生成后不会存储或记录您粘贴的任何内容。
相关工具
可复制的箭头符号
一键复制常用 Unicode 箭头:直线、双线、斜向、钩形、环形和三角样式,适合文档、聊天和设计。
小于或等于符号
复制 ≤ 符号及相关数学比较符号。包含适用于电子表格、论文和网页的 Unicode、HTML 实体及 LaTeX 标记。
域名生成器
根据一个关键词生成域名创意:在六种常见 TLD 中组合前缀、后缀、重复字母和数字结尾。
适合阅读障碍者的文本转换工具
将粘贴的文本重新排版为短段落和约72个字符的行,便于阅读。将结果复制到任何文档、邮件或编辑器中。
泰语数字转文字工具
在浏览器本地将最多 18 位数字写成泰语,或用 ASCII 数字或泰文数字将准确的泰铢和萨当金额写成文字,不进行舍入。
字数统计器
统计单词、字符、句子和段落数,并提供阅读时间、朗读时间、关键词密度,以及面向论文、帖子、配文和元描述的 Flesch 易读性评分。
此工具还提供其他语言版本
- Detektor för osynliga tecken [SV]
- أداة كشف الأحرف غير المرئية [AR]
- Détecteur de caractères invisibles [FR]
- Detektor Karakter Tak Terlihat [ID]
- Unsichtbarer Zeichendetektor [DE]
- 보이지 않는 문자 탐지기 [KO]
- Detektor niewidzialnych znaków [PL]
- เครื่องตรวจจับตัวอักษรที่มองไม่เห็น [TH]
- Onzichtbare karakter detector [NL]
- Bộ phát hiện ký tự vô hình [VI]
- 不可視文字検出器 [JA]
- Detector de Caracteres Invisibles [ES]
- Detector de Caracteres Invisíveis [PT]
- Invisible Character Detector [EN]
- Rilevatore di Caratteri Invisibili [IT]
- Обнаружитель невидимых символов [RU]
- Görünmez Karakter Tespit Cihazı [TR]