零宽字符Zero-Width Characters
把秘密文字隐写成零宽字符藏进普通文本,显示与复制完全无痕,也能一键反向提取、检测并清理文章里的隐形水印。纯客户端运行,数据不出本机。
工具介绍
3 段详细说明零宽字符是一类宽度为零、肉眼完全不可见的 Unicode 控制字符。本工具把它们变成"隐形墨水":把秘密文字编码成零宽位流,藏进一段普通文本里,对方粘贴回来即可提取。同一页面还提供反向解码与一键检测清理,收到可疑文本时先验货再转发。
隐藏原理非常透明:秘密先转成 UTF-8 字节,每个字节展开为 8 个二进制位,再用零宽空格(U+200B)与零宽不连字(U+200C)分别表示 1 和 0,首尾用零宽连字(U+200D)作定界符。载荷嵌入载体文本后,屏幕显示、字数统计、复制转发都看不出任何变化。
所有编码、解码、检测都在浏览器内存中完成,文本不上传任何服务器。基于原生 TextEncoder / TextDecoder,中英文、emoji 一视同仁,几万字的文本也是毫秒级处理,可断网使用。
基础知识 · 零宽字符家族
8 类字符 · 1 套方案零宽字符都属于 Unicode 的格式控制字符:不显示、不占宽,却真实存在于文本流中。认识以下 6 个核心概念,就能看懂隐写、检测与清理各自在做什么:
U+200B零宽空格 ZWSP1。常被用于网页"可断行不可见"排版,也是隐写位流的主力。U+200C零宽不连字 ZWNJ0,与 U+200B 组成一位二脉冲。U+200D零宽连字 ZWJU+2060 / FEFF词连接符与 BOMU+2060 词连接符与 U+FEFF 零宽不换行空格都不换行、不占宽。FEFF 常作为文件开头的 BOM 混进正文,是"复制到代码里就报错"的惯犯,检测模式会单独计数。200E / 200F双向标记 LRM / RLMstego隐写编码方案UTF-8 字节 → 每字节 8 位二进制(高位在前)→ U+200B=1、U+200C=0,首尾以 U+200D 定界,整段嵌入载体首字符之后。方案完全公开透明,可自行实现同款编解码器互通。TextEncoder 得 UTF-8 字节 → 每字节 8 bit(MSB 在前)→ 1 映射 U+200B,0 映射 U+200C。U+200D + 位流 + U+200D,嵌入载体首字符之后;解码时正则定位定界符间的位流即可还原。fatal: true 解码失败时自动跳过,继续尝试下一段载荷,emoji 的 ZWJ 不会误报。O(n) 单遍扫描,几万字文本毫秒级完成。使用说明
4 步快速入门使用场景
5 个真实案例把作者署名、首发标记藏进文章正文,被搬运时提取载荷即可溯源,截图也删不掉。
在简历、贺卡、公告里藏一句只有"懂的人"才提取得出的暗号,趣味拉满。
仿冒域名常靠零宽字符绕过人工核对,粘贴可疑消息一键检出隐形字符。
从网页、Word、聊天记录复制的文本常混入 U+FEFF 等隐形字符,导致搜索、比对、解析莫名失败,清理后再入库。
有人用零宽字符把"关键词"拆开绕过搜索与审核,检测清理一键还原成连续文本,再交给搜索或匹配逻辑。
常见问题
10 个问答零宽字符是什么?真的看不见吗?
零宽字符是一类不占任何显示宽度、也不产生空隙的 Unicode 控制字符,如零宽空格 U+200B、零宽连字 U+200D。它们真实存在于文本中,可以被复制、搜索(若知道码位)和统计,只是肉眼不可见。
隐藏的信息会被别人发现吗?
零宽隐写不是加密,只是"不可见"。懂行的人用检测工具(包括本工具的检测清理模式)就能发现并提取。需要保密的内容请先 AES 加密再隐写,本工具只负责藏,不负责保险箱。
隐写文本发到微信 / 邮箱还能提取吗?
微信、邮件、Telegram 等大多数渠道会原样保留零宽字符,可以提取。但部分平台(微博部分输入框、某些数据库、URL 参数)会过滤或转码控制字符,发送前建议双方先跑一遍"隐藏 → 提取"闭环验证。
为什么提取失败?
常见原因:转发时文本被平台过滤掉零宽字符、复制时漏了首尾、或对方用的是其他工具的编码方案(位序 / 字符映射不同)。本工具按「U+200B=1、U+200C=0、U+200D 定界、UTF-8 字节序」编码,仅保证自己生成的载荷可还原。
emoji 里的 U+200D 会干扰解码吗?
不会。组合 emoji(如 👨👩👧)确实包含零宽连字,但解码只认「两个 U+200D 之间夹着纯 U+200B/U+200C 位流」的片段,且必须能成功按 UTF-8 解码才返回,emoji 序列不满足该模式,会被自动跳过。
检测模式能识别哪些字符?
共 8 类:U+200B 零宽空格、U+200C 零宽不连字、U+200D 零宽连字、U+2060 词连接符、U+FEFF 零宽不换行空格(BOM)、U+200E/U+200F 左右向标记、U+00AD 软连字符。逐类给出数量,并一键生成清理后的纯文本。
清理后文本和原文有什么区别?
仅删除 8 类零宽 / 不可见字符,所有可见内容(含 emoji 组合序列中的可见部分)原样保留。注意:组合 emoji 会因失去 U+200D 而拆成独立小人,如需保留 emoji 请勿对含 emoji 的文本执行清理。
隐藏一段秘密会让文本变长很多吗?
会。每个字节展开为 8 个零宽字符,一个汉字约 3 字节 ≈ 24 个隐形字符。好在它们宽度为零,显示长度不变;但如果按字符数计费或有限长的场景(如短信),建议只藏关键信息。
零宽字符是恶意软件吗?为什么会有人滥用?
不是恶意软件,只是普通 Unicode 字符。但曾被滥用于:把追踪 ID 藏进外泄文档(雪花水印)、伪造"同形"域名绕过审核、在代码评审里夹带不可见改动。这也正是本工具提供检测清理模式的原因。
支持多大的文本?我的内容会上传吗?
建议 ≤ 5 MB。编码 / 解码为线性扫描,检测为逐类单遍统计,均在毫秒级完成。所有计算都在浏览器内存中进行,输入内容不上传任何服务器,可断网使用。
相关工具
文本分类数据来源
隐私优先TextEncoder,秘密转 UTF-8 字节后按 8 位一组映射为零宽字符位流(U+200B=1、U+200C=0、U+200D 定界);解码按 UTF-8 fatal 模式校验,检测为 8 类字符单遍统计。无任何第三方依赖、无 WASM、无 polyfill。