不可见与易混字符检测器
两段文本肉眼看起来一模一样,但 VLOOKUP 却报错说无法匹配;明明有表头,导入时却提示「缺少表头」。把文本粘进来,看清它底层到底藏了什么。
🔒 你的文本不会离开浏览器 —— 全程在本地解析。
为什么「一模一样」的字符串会匹配失败
文本中常常混入不速之客。从供应商网页复制的商品标题,可能在单词正中间夹着一个零宽空格;Excel 保存的 CSV 文件以字节顺序标记(BOM)开头,直接吸附在首列列名上;Word 会自动把单撇号替换为弯撇号、把连字符变成 en dash。这些字符肉眼完全不可见,却彻底改变了底层的字节序列。
这些隐藏字符会导致你经常遇到的经典 Bug:
- 「缺少表头: Title」 —— BOM 标记死死吸附在首列,让表头变成了
Title - VLOOKUP / 精确匹配失效 —— 看似普通空格的位置实际藏着一个不换行空格(NBSP)
- 商品被当成重复项 —— 两个看似相同的 SKU 仅因一个不可见字符而被系统判定为不同商品
- 导入时报引号语法错误 —— 未加转义的 CSV 字段里夹杂了 Word 自动替换的智能弯引号
- 莫名其妙超出字符或字节上限 —— 不可见字符在屏幕上虽不占宽度,却实打实占用字节数
并非所有不可见字符都应该删除
Emoji 表情序列中间的零宽连接符(ZWJ),正是让「家庭」表情渲染为单个复合图形而非三个独立小人的关键。一旦将其盲目剔除,表情就会彻底碎裂。本工具会在清洗时智能保留这些字符,并清楚说明保留的缘由 —— 简单粗暴的「清除所有不可见字符」正则根本做不到这一点。
本工具识别的字符类型(已为 37 种字符收录专门条目,外加全角字符与控制符)
零宽字符
U+200B 零宽空格 (ZERO WIDTH SPACE)
这个字符通常从哪来: 从网页复制而来,或者由内容管理系统(CMS)编辑器作为换行提示插入。
它会对你的数据造成什么影响: 隐蔽地切断单词。精确匹配查找(VLOOKUP)会失败,搜索引擎索引的字符串也与你在屏幕上看到的完全不一致。
清洗处置:直接删除
U+200C 零宽不连字 (ZERO WIDTH NON-JOINER)
这个字符通常从哪来: 阿拉伯文、波斯文及印度语言文字,在其中控制字形连笔与分词。
它会对你的数据造成什么影响: 在阿语或印地语中有语义,但若残留于拉丁字母中会彻底破坏精确匹配。
清洗处置:直接删除
U+200D 零宽连字 (ZERO WIDTH JOINER)
这个字符通常从哪来: Emoji 序列(如家庭、职业等组合表情)以及印度系文字。
它会对你的数据造成什么影响: 若从 Emoji 序列中将其强行删除,会导致一个合成表情裂解为若干个孤立的图标。
清洗处置:保持原样(移除可能会破坏原有含义)
U+2060 词连结符 (WORD JOINER)
这个字符通常从哪来: 排版工具,用于阻止在该位置换行。
它会对你的数据造成什么影响: 肉眼不可见,但占用字符数和字节上限,且导致精确匹配失败。
清洗处置:直接删除
字节顺序标记 (BOM)
U+FEFF 零宽不换行空格 / 字节顺序标记 (BOM)
这个字符通常从哪来: UTF-8 文件开头的字节顺序标记(BOM),通常由 Excel 或 Windows 记事本生成。
它会对你的数据造成什么影响: 吸附在首列列名上,导致表头 "id" 无法匹配 "id" —— 导入表格时报「缺少表头」的经典元凶。
清洗处置:直接删除
易混空白字符
U+00A0 不换行空格 (NO-BREAK SPACE)
这个字符通常从哪来: Word、Google Docs 及网页( ) —— 自动插入在单位周围或短词之后以防断行。
它会对你的数据造成什么影响: 外观与普通空格完全相同但码点不同,trim() 无法将其剥除,按普通空格 split(" ") 也会遗漏。
清洗处置:替换为「 」
U+202F 窄不换行空格 (NARROW NO-BREAK SPACE)
这个字符通常从哪来: 法语排版及部分欧洲语言环境的电子表格,在其中充当千分位分隔符。
它会对你的数据造成什么影响: 隐蔽地区别于常规空格;破坏数值解析及字符串匹配。
清洗处置:替换为「 」
U+3000 全角空格 (IDEOGRAPHIC SPACE)
这个字符通常从哪来: 东亚(CJK)输入法打出的全角空格。
它会对你的数据造成什么影响: 宽度是普通空格的两倍,且在部分工具中无法被常规的 trim() 剥除。
清洗处置:替换为「 」
U+2007 数字空格 (FIGURE SPACE)
这个字符通常从哪来: 数字必须严格对齐的数值表格。
它会对你的数据造成什么影响: 不是普通空格;会导致数值解析失败。
清洗处置:替换为「 」
U+2009 细空格 (THIN SPACE)
这个字符通常从哪来: 专业排版软件及 PDF 文本抽取工具。
它会对你的数据造成什么影响: 不是普通空格;会导致字符串切分与匹配失效。
清洗处置:替换为「 」
弯引号 (Smart Quotes)
U+2018 左单引号 (LEFT SINGLE QUOTATION MARK)
这个字符通常从哪来: Word 和 Google Docs 的自动更正功能。
它会对你的数据造成什么影响: 破坏 CSV 文件的引号转义规则,导致期待直单引号的解析程序崩溃。
清洗处置:替换为「'」
U+2019 右单引号 (RIGHT SINGLE QUOTATION MARK)
这个字符通常从哪来: Word 和 Google Docs 的自动更正 —— 所谓的「弯撇号 / 智能单引号」。
它会对你的数据造成什么影响: 破坏 CSV 引号规则,且导致包含撇号的人名或品牌名无法精确匹配。
清洗处置:替换为「'」
U+201C 左双引号 (LEFT DOUBLE QUOTATION MARK)
这个字符通常从哪来: Word 和 Google Docs 的自动更正功能。
它会对你的数据造成什么影响: 不属于合法的 CSV 引号定界符,会导致难以排查的字段解析错位。
清洗处置:替换为「"」
U+201D 右双引号 (RIGHT DOUBLE QUOTATION MARK)
这个字符通常从哪来: Word 和 Google Docs 的自动更正功能。
它会对你的数据造成什么影响: 不属于合法的 CSV 引号定界符,会导致难以排查的字段解析错位。
清洗处置:替换为「"」
易混破折号 / 连接符
U+2013 短破折号 (EN DASH)
这个字符通常从哪来: Word 自动更正将「1-2」转换为 en dash「1–2」。
它会对你的数据造成什么影响: 不是半角连字符(-) —— 会导致 SKU 编号与数值范围匹配完全失效。
清洗处置:替换为「-」
U+2014 长破折号 (EM DASH)
这个字符通常从哪来: Word 自动更正将「--」转换为 em dash「—」。
它会对你的数据造成什么影响: 不是半角连字符;会导致商品标识符匹配失败。
清洗处置:替换为「-」
U+2212 减号 (MINUS SIGN)
这个字符通常从哪来: 电子表格与数学排版软件。
它会对你的数据造成什么影响: 看似连字符但码点不同;会导致负数解析失败。
清洗处置:替换为「-」
U+00AD 软连字符 (SOFT HYPHEN)
这个字符通常从哪来: 文字处理软件用于标记单词可在何处断字换行的软连字符(Soft Hyphen)。
它会对你的数据造成什么影响: 未折行时完全隐形,一旦文本排版折行就会凭空冒出一个连字符。同时彻底破坏精确匹配。
清洗处置:直接删除
非常规换行符
U+0085 下一行 (NEL)
这个字符通常从哪来: 大型机及旧式 EBCDIC 编码导出的数据。
它会对你的数据造成什么影响: 被某些解析器视为换行符、被另一些忽略,导致数据行在不同系统中发生不可预测的断裂。
清洗处置:替换为「 」
U+2028 行分隔符 (LINE SEPARATOR)
这个字符通常从哪来: 某些编辑器中的 Shift+Enter,或从 JavaScript/JSON 中导出的行分隔符(U+2028)。
它会对你的数据造成什么影响: 在某些解析器中将整行 CSV 从中腰斩断,在另一些中则表现为隐形。
清洗处置:替换为「 」
U+2029 段分隔符 (PARAGRAPH SEPARATOR)
这个字符通常从哪来: Word 及富文本转换过程中产生的段分隔符(U+2029)。
它会对你的数据造成什么影响: 与行分隔符后果相同 —— 造成数据在不同平台间导入时发生不可预测的断行。
清洗处置:替换为「 」
双向文本控制符
U+202A 从左至右嵌入 (LRE)
这个字符通常从哪来: 阿拉伯文/希伯来文与拉丁字母混排的文本。
它会对你的数据造成什么影响: 肉眼不可见,但会导致渲染出来的文字排列顺序与底层存储的字符顺序完全相反。必须由 U+202C 成对闭合。
清洗处置:直接删除
U+202B 从右至左嵌入 (RLE)
这个字符通常从哪来: 阿拉伯文/希伯来文与拉丁字母混排的文本。
它会对你的数据造成什么影响: 肉眼不可见,但会导致渲染出来的文字排列顺序与底层存储的字符顺序完全相反。必须由 U+202C 成对闭合。
清洗处置:直接删除
U+202C 双向格式阻断 (PDF)
这个字符通常从哪来: 由输出双向文本的编辑器或程序库写入,用于关闭先前开启的嵌入或覆盖控制。
它会对你的数据造成什么影响: 本身无害,但若多出一个,意味着闭合了一个从未开启过的双向范围。
清洗处置:直接删除
U+202D 从左至右覆盖 (LRO)
这个字符通常从哪来: 在商品数据中几乎绝无合法使用场景。
它会对你的数据造成什么影响: 强制按从左到右显示文本,无视字符自身的天然书写方向。与 U+202E 机理相同但方向相反。
清洗处置:直接删除
U+202E 从右至左覆盖 (RLO)
这个字符通常从哪来: 在商品数据中几乎绝无合法使用场景。
它会对你的数据造成什么影响: 将其后所有文本的显示顺序镜像倒转 —— 伪装文件名与绕过审核的已知手段,出现在商品数据中应高度警惕。
清洗处置:直接删除
U+2066 从左至右隔离 (LRI)
这个字符通常从哪来: 用于替代旧式嵌入控制符的现代 Unicode 隔离控制符。
它会对你的数据造成什么影响: 将其后的字符片段与周围文本完全隔离。必须由 U+2069 成对闭合。
清洗处置:直接删除
U+2067 从右至左隔离 (RLI)
这个字符通常从哪来: 用于替代旧式嵌入控制符的现代 Unicode 隔离控制符。
它会对你的数据造成什么影响: 将其后的字符片段与周围文本完全隔离。必须由 U+2069 成对闭合。
清洗处置:直接删除
U+2068 首强字符隔离 (FSI)
这个字符通常从哪来: 用于在无法预先得知插入文本书写方向时进行文本隔离。
它会对你的数据造成什么影响: 将其后的文本片段隔离,并根据其首个强方向字符推断朝向。必须由 U+2069 成对闭合。
清洗处置:直接删除
U+2069 双向隔离阻断 (PDI)
这个字符通常从哪来: 由输出双向文本的编辑器或程序库写入,用于关闭先前开启的隔离控制。
它会对你的数据造成什么影响: 本身无害,但若多出一个,说明闭合了一个从未开启过的隔离片段。
清洗处置:直接删除
U+200E 从左至右标记 (LRM)
这个字符通常从哪来: 由编辑器插入,用于锚定相邻标点符号的文字朝向。
它会对你的数据造成什么影响: 在真实的双向混排文本中完全合法,但因其不可见,会导致两串看起来一模一样的文本在程序中判定为不相等。
清洗处置:直接删除
U+200F 从右至左标记 (RLM)
这个字符通常从哪来: 由编辑器插入,用于锚定相邻标点符号的文字朝向。
它会对你的数据造成什么影响: 在真实的双向混排文本中完全合法,但因其不可见,会导致两串看起来一模一样的文本在程序中判定为不相等。
清洗处置:直接删除
控制字符
U+0009 水平制表符 (Tab)
这个字符通常从哪来: 从电子表格、制表符分隔文件或代码中复制而来。
它会对你的数据造成什么影响: 将制表符分隔(TSV)字段切成两半 —— 误入的一个 Tab 会导致该行后续所有列整列错位。
清洗处置:替换为「 」
U+000B 垂直制表符 (VT)
这个字符通常从哪来: Word 中的 Shift+Enter(软换行),或部分 PDF 文本提取工具。
它会对你的数据造成什么影响: 在部分工具中被识别为换行符,在另一些工具中则被直接忽略,表现极不一致。
清洗处置:替换为「 」
U+000C 换页符 (Form Feed)
这个字符通常从哪来: 旧式打印控制符(换页符),偶见于 PDF 提取的文本残留。
它会对你的数据造成什么影响: 不可见字符;会破坏结构化字段的解析。
清洗处置:替换为「 」
变体选择符
U+FE0F 变体选择符-16 (VS-16, Emoji)
这个字符通常从哪来: Emoji 变体选择符 —— 强制将符号渲染为彩色图形表情。
它会对你的数据造成什么影响: 不可见却占用字符上限,且会把普通符号强制渲染为某些电商平台直接拒收的彩色 Emoji 图形。
清洗处置:保持原样(移除可能会破坏原有含义)
U+FE0E 变体选择符-15 (VS-15, 文本)
这个字符通常从哪来: Emoji 变体选择符 —— 强制将符号渲染为单色文本符号。
它会对你的数据造成什么影响: 肉眼不可见但存储在字节中,且无谓消耗标题长度预算。
清洗处置:保持原样(移除可能会破坏原有含义)
关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →