隐形字符检测器
揭示导致外观相同的行无法匹配的隐藏字符。粘贴您的文本,准确查看不间断空格、零宽空格、制表符和其他不可见字符藏匿的位置。
试试示例:
输入
输入或拖放文件
已发现隐形字符
在左侧粘贴文本以扫描…
隐形字符参考
| 标签 | 码位 | 名称 | 可检测 |
|---|---|---|---|
| [NBSP] | U+00A0 | No-Break Space | ✓ 是 |
| [ZWS] | U+200B | Zero-Width Space | ✓ 是 |
| [ZWNJ] | U+200C | Zero-Width Non-Joiner | ✓ 是 |
| [ZWJ] | U+200D | Zero-Width Joiner | ✓ 是 |
| [BOM] | U+FEFF | Byte Order Mark | ✓ 是 |
| [WJ] | U+2060 | Word Joiner | ✓ 是 |
| [CR] | U+000D | Carriage Return (\r) | ✓ 是 |
| [TAB] | U+0009 | Horizontal Tab | ✓ 是 |
| [SHY] | U+00AD | Soft Hyphen | - |
| [NNBS] | U+202F | Narrow No-Break Space | - |
| [LRM] | U+200E | Left-to-Right Mark | ✓ 是 |
| [RLM] | U+200F | Right-to-Left Mark | ✓ 是 |
| [RTLO] | U+202E | Right-to-Left Override | ✓ 是 |
| [LSEP] | U+2028 | Line Separator | - |
| [PSEP] | U+2029 | Paragraph Separator | - |
| [HAIR] | U+200A | Hair Space | - |
| [HAN-F] | U+3164 | Hangul Filler | ✓ 是 |
| [BRL] | U+2800 | Braille Pattern Blank | ✓ 是 |
| [ISPACE] | U+3000 | Ideographic Space | - |
常见问题
什么是隐形字符?
隐形字符是呈现为空白或不占用可见空间的 Unicode 码位,但在技术上与普通空格不同。它们频繁出现在从网页、PDF、电子表格和导出的数据库字段复制的数据中。
此工具检测的常见类型:
此工具检测的常见类型:
- NBSP(U+00A0)- 外观与普通空格相同,但字符不同;由 HTML 编辑器和文字处理软件插入
- ZWS(U+200B)- 完全不可见,不占用空间;是“相同”行无法匹配的首要原因
- ZWJ / ZWNJ - 控制相邻字符是否连接;常见于阿拉伯语、波斯语和表情符号序列
- BOM(U+FEFF)- 由 Windows 记事本、Excel 和 PowerShell 添加到文件开头;导致第一行永远不匹配
- CR(U+000D)- 回车符;Windows CRLF 行尾的组成部分,导致末尾字符不匹配
- TAB(U+0009)- 水平制表符;来自 TSV 文件、代码编辑器和终端复制粘贴
为什么两行看起来相同却不匹配?
普通空格(U+0020)和不间断空格(U+00A0)外观相同,但字符编码完全不同。比较列表时,带有尾部 NBSP 的条目与带有普通空格的相同条目不匹配--即使两者在屏幕上看起来完全一样。
零宽空格更难发现:它们不占用任何可见空间,因此在比较或数据库查找意外失败之前,您无法从视觉上判断它们是否存在。
此工具准确揭示每个隐形字符的位置,以便您在比较前清理数据。
零宽空格更难发现:它们不占用任何可见空间,因此在比较或数据库查找意外失败之前,您无法从视觉上判断它们是否存在。
此工具准确揭示每个隐形字符的位置,以便您在比较前清理数据。
隐形字符从何而来?
最常见的来源:
- 网页 - HTML 经常使用 NBSP(
实体)进行排版;从网站复制粘贴时可能带入 - PDF - 提取文本时,间距和行尾通常不一致
- 电子表格 - Excel 和 Google Sheets 有时会在格式化的单元格中插入 ZWS
- 数据库导出 - 某些数据库会在文本字段中保留来自源应用程序的 NBSP
- 移动键盘 - 某些键盘在标点符号后插入 NBSP 而非普通空格
- 文字处理软件 - Microsoft Word 等应用在格式化文本中使用不间断空格
如何从列表中删除隐形字符?
- 将文本粘贴到输入框中。注释面板会将每个隐形字符显示为彩色标签(如 [NBSP]、[ZWS]),以便您准确看到它们出现的位置。
- 从下方的已清理面板复制,该面板显示已删除所有隐形字符的相同文本。
什么是不间断空格(NBSP)?
不间断空格(U+00A0)外观与普通空格相同,但字符编码不同(160 与 32)。它最初设计用于将相邻单词保持在同一行--例如,防止“100 km”在换行处被分开。
来源:HTML 编辑器(
为何会造成问题:任何精确字符串比较都将 NBSP 视为与普通空格不同的字符,导致列表比较、数据库查找和导入中出现意外不匹配--即使文本在屏幕上看起来完全相同。
来源:HTML 编辑器(
实体)、Microsoft Word 等文字处理软件,以及某些在标点符号后插入它的移动键盘。为何会造成问题:任何精确字符串比较都将 NBSP 视为与普通空格不同的字符,导致列表比较、数据库查找和导入中出现意外不匹配--即使文本在屏幕上看起来完全相同。
什么是零宽空格(ZWS)?
零宽空格(U+200B)完全不占用可见空间--对肉眼完全不可见。它最初设计用于标记不使用单词间空格的文字(如泰语或 CJK 文本)中的可选换行点。
来源:从网页抓取的文本、某些 CMS 平台的内容(WordPress 有时会插入它们)以及从富文本格式转换的文档。
为何会造成问题:由于它不可见,在比较、数据库查找或导入意外失败之前,您无法知道它的存在。它是“相同”行拒绝匹配的最常见原因。
来源:从网页抓取的文本、某些 CMS 平台的内容(WordPress 有时会插入它们)以及从富文本格式转换的文档。
为何会造成问题:由于它不可见,在比较、数据库查找或导入意外失败之前,您无法知道它的存在。它是“相同”行拒绝匹配的最常见原因。