# 不可见字符检测 - 零宽字符、Trojan Source、同形字清理

> 在线检测并清理文本中的零宽字符、双向控制符（Trojan Source）、不间断空格、软连字符、控制字符、同形异义字和全角字母，标记显示并一键清理。

- 网址: https://qilingtools.com/zh/invisible-chars
- 分类: 开发工具 (https://qilingtools.com/zh/dev)
- 标签: [文本处理](https://qilingtools.com/zh/tags/text), [隐私安全](https://qilingtools.com/zh/tags/privacy), [开发](https://qilingtools.com/zh/tags/dev)
- 最后更新: 2026-10-26
- 价格: 免费，无需注册
- 隐私: 在浏览器本地处理，文件不上传服务器

从网页、聊天记录或文档里复制来的文字，常常夹带看不见的字符：零宽空格让搜索和比对失效，BOM 让配置文件解析出错，不间断空格让代码报语法错误，软连字符藏在单词中间，双向控制符能让源代码显示的顺序与编译器看到的不同（即 Trojan Source 攻击），西里尔字母 а 冒充拉丁字母 a 可以伪造网址和用户名。这个工具逐字检查文本：零宽字符（ZWSP、ZWNJ、ZWJ、WJ、BOM 等）、双向控制符（LRE、RLE、LRO、RLO、PDF、LRI、RLI、FSI、PDI、LRM、RLM），并逐行检查它们是否配对；各种异常空格（NBSP、全角空格、Em 空格等）、软连字符、C0/C1 控制字符、标签字符、变体选择符、全角字母数字、叠加的组合符号（Zalgo 文字），以及内置精简易混淆字符表里的西里尔、希腊、亚美尼亚、切罗基字母和单词内混用多种文字的情况。中文与英文混排、正常的中文全角标点和 emoji 组合序列不会误报。结果以彩色标记嵌在原文中，不可见字符显示为名称缩写，点击可查看码点、名称、通用类别、文字、UTF-8/UTF-16 编码和行列位置。清理可选预设或逐项勾选，并可做 NFC/NFKC 规范化，前后差异一目了然，结果一键复制。全部在浏览器本地完成。

## 使用步骤

1. 粘贴要检查的文本、代码、网址或用户名
2. 查看分类统计、Trojan Source 警告和标记视图，点击标记查看字符详情
3. 选择清理预设或逐项勾选，对比前后差异后复制结果或替换输入

## 功能特点

- 零宽字符、BOM、单词连接符等检测
- 双向控制符检测与逐行配对检查（Trojan Source）
- NBSP、全角空格等异常空格与软连字符
- 控制字符、标签字符、变体选择符、Zalgo 叠加符号
- 西里尔/希腊/亚美尼亚等同形异义字与混用文字检测
- 全角字母数字检测，emoji 序列与中文标点不误报
- 码点、名称、类别、文字、UTF-8/UTF-16 详情
- 清理预设、NFC/NFKC 规范化与前后差异对比

## 常见问题

### 什么是 Trojan Source 攻击？

Unicode 的双向控制符（如 RLO U+202E、LRI U+2066、PDI U+2069）用于在同一行混排从左到右和从右到左的文字。2021 年公布的 Trojan Source（CVE-2021-42574）利用它们，让编辑器和代码审查界面显示的代码顺序与编译器实际读取的顺序不同，例如把一段判断藏进看似是注释的地方。本工具会标出每个双向控制符，并逐行检查嵌入/覆盖是否用 PDF 结束、隔离是否用 PDI 结束，未配对的会给出警告。

### 为什么要检测同形异义字？

不少文字里有和拉丁字母长得一模一样的字符，比如西里尔字母 а、е、о、р、с 与拉丁字母 a、e、o、p、c 外观相同但码点不同。攻击者用它们注册仿冒域名、伪造用户名或绕过关键词过滤。工具在含有拉丁字母的单词里发现这些字符、或整个单词都由可冒充拉丁字母的字符组成时会标出，并可替换为对应的拉丁字母。纯俄语、希腊语文本不会被误报。

### 清理会不会破坏 emoji 或中文？

默认不会。emoji 组合序列中的 ZWJ（如家庭 emoji）和 VS16 变体选择符是正常用法，默认既不标记也不删除；中文全角标点也不算问题，全角空格默认保留，需要时可勾选替换。只有“最严格”预设会做 NFKC 兼容规范化，它会把 ﬁ 拆成 fi、把 ① 变成 1、把全角符号变成半角，适合用于代码和标识符，不适合排版文本。

### NFC 和 NFKC 有什么区别？

同一个字形在 Unicode 里可能有多种编码，例如 é 可以是一个码点，也可以是 e 加组合重音符。NFC 把它们统一成合成形式，不改变外观，适合大多数文本，可避免“看起来相同却比较不相等”。NFKC 还会进行兼容分解，把全角字母、上标、连字、带圈数字等换成普通字符，可能改变外观，适合清洗用户名、搜索关键词和代码。

## 相关工具

- [JSON 格式化](https://qilingtools.com/zh/json): 免费在线 JSON 格式化：一键美化、压缩，实时语法校验并定位到出错行列，支持树形视图折叠、键名排序、转义与去转义、Unicode 转中文、复制下载，数据不上传。
- [Base64 编解码](https://qilingtools.com/zh/base64): 免费在线 Base64 编码解码工具：支持中文 UTF-8、URL 安全变体，文本与 Base64 互转，实时转换，本地处理不上传。
- [URL 编解码](https://qilingtools.com/zh/url-encode): 免费在线 URL 编码解码工具：encodeURIComponent 与 encodeURI 两种模式，处理中文、空格与特殊符号，本地实时转换不上传。
- [JWT 解析](https://qilingtools.com/zh/jwt): 免费在线 JWT 解析工具：解码 JWT 的 Header 与 Payload，展示过期时间、签发时间等，本地解析不上传，保护令牌安全。
- [时间戳转换](https://qilingtools.com/zh/timestamp): 免费在线 Unix 时间戳转换工具：时间戳与日期互转，自动识别秒/毫秒，显示本地时间、UTC、ISO 8601 和相对时间，实时更新。
- [哈希计算](https://qilingtools.com/zh/hash): 免费在线哈希/摘要计算工具：对文本或文件计算 SHA-1、SHA-256、SHA-384、SHA-512，使用浏览器加密接口本地完成，文件不上传。
- [UUID 生成](https://qilingtools.com/zh/uuid): 免费在线 UUID 生成器：使用加密安全随机数批量生成符合 RFC 4122 的 UUID v4，可大写、去连字符、加花括号，一键复制。
- [进制转换](https://qilingtools.com/zh/base-convert): 免费在线进制转换工具：二进制、八进制、十进制、十六进制及任意 2–36 进制互转，支持大整数（BigInt），本地实时计算。
