AI 水印检测

把聊天窗口、文档或网页里复制出来的文字贴进来。这个工具会找出零宽空格、U+202F 窄空格、弯引号和其他不可见 Unicode,再让你复制干净的纯文本。免费,在浏览器里完成,文字不会上传。

  • 免费,无需注册
  • 文字留在这个标签页
  • 页面打开后即可检查

这些是排版和格式字符,不是加密水印。清掉它们不会让一篇文字变成「检测不出来」,也不能去掉 SynthID-Text 这类藏在用词里的统计水印。

清理哪些字符

emoji 序列会保留。处理法语时关掉「规范特殊空格」;处理阿拉伯语、希伯来语、波斯语或印地语时关掉「删除不可见字符」。

待检查文本

粘贴文字后即可检查。

清理后的文本

怎么检查文字里的隐藏字符

报告会随着粘贴更新。文字不会发到服务器。

  1. 1

    粘贴文本

    从聊天窗口、Word、公众号后台或代码文件复制过来。示例里带了零宽空格、窄空格、弯引号、软连字符和 emoji,可以先看报告再贴自己的文字。

  2. 2

    看检查结果

    隐藏字符按种类计数,名字旁边是 Unicode 码位。打开「显示隐藏字符」,看不见或容易认错的字符会变成一个标签。引号和破折号单独列出,因为它们本来就能看见。

  3. 3

    复制纯文本

    右边是清理后的版本,可以复制,也可以下载 .txt。想保留某一类字符时,先把对应开关关掉,例如法语窄空格、你确实想留的破折号,或还要渲染的 Markdown。

为什么复制出来的文字会带上隐藏字符

2025 年 4 月,有人在 ChatGPT o3 和 o4-mini 的长回答里看到大量窄不换行空格(U+202F)。这个字符看起来就是普通空格。消息很快被叫成「ChatGPT 水印」。OpenAI 的说法是训练副作用,不是他们故意埋的标记,这种分布随后也从输出里消失了。搜索还在,是因为真正麻烦的事比这则消息更早。

从聊天窗口、Word 或网页复制出来的文字,经常带着作者没打算输入的字符:弯引号、破折号、不换行空格、Markdown 星号,偶尔还有真正看不见的 Unicode,比如零宽空格、连接符、字节顺序标记和方向覆盖符。这些都不是加密水印。字符检查能把它们找出来。其中一部分还会让代码、表格、查找替换和内容系统出现看起来像「文件中邪了」的错误。

2026 年 8 月 2 日起,欧盟《人工智能法案》第 50 条要求生成式系统的提供者,以机器可读的方式标注合成内容。各家产品最终用什么标记先不说,已经有人把草稿贴进检查工具,想知道剪贴板里到底有什么。字符检查回答的是剪贴板这个问题。它看不到 Google SynthID-Text 那种藏在用词里的统计水印,也不能把一段话改写到让文风检测器改口。

这个边界就是工具本身。页面列出每一种特殊字符,标出看不见的那些在哪里,然后还给你纯文本。句子还是原来的句子。每一组规则都能关掉,所以法语草稿可以留下窄空格,中文可以留下全角空格,双向文本可以留下方向标记。

这个工具会检查哪些字符

下面这张表就是清理程序实际使用的清单。表里有的字符,检查时就会找。文本框上方的开关按组打开或关闭。换行符始终会规范成普通换行。

AI 水印检测会识别的 Unicode 字符,以及每一类会怎样被清理
码位名称清理方式由哪个开关控制为什么重要
U+200B零宽空格删除删除不可见字符不占宽度,可以插在一个看起来完整的词中间,搜索和变量名都会对不上。
U+200C零宽非连接符删除删除不可见字符英文里看不见。波斯语和印地语里它有实际作用,处理这些语言时请关掉「删除不可见字符」。
U+200D零宽连接符删除删除不可见字符用来把多个 emoji 拼成一个。emoji 内部的连接符会保留,普通文字里的会被删掉。
U+2060单词连接符删除删除不可见字符看不见的禁断标记,不显示空格,但会阻止在这里换行。
U+FEFF字节顺序标记删除删除不可见字符有些编辑器会在文件开头塞进这个隐藏标记。出现在正文中间时,解析器会报错。
U+00AD软连字符删除删除不可见字符平时看不见,只有在它这里换行时才显示成连字符。
U+034F组合字素连接符删除删除不可见字符几乎不会出现在正常句子里的不可见控制符。
U+200E, U+200F, U+061C, U+202A–U+202E, U+2066–U+2069方向标记与覆盖删除删除不可见字符可以让字符的视觉顺序和存储顺序不一致。阿拉伯语、希伯来语需要它,它也是 Trojan Source 攻击用的字符。处理真正的双向文本时请关掉。
U+180B–U+180E蒙古文分隔符删除删除不可见字符蒙古文变体选择符和元音分隔符。在中文或英文里不会显示。
U+2061–U+2064不可见数学运算符删除删除不可见字符数学排版留下的不可见乘号、加号、分隔符和应用符。
U+206A–U+206F已弃用的塑形控制符删除删除不可见字符早期阿拉伯文塑形用的控制符,现在的文本不需要。
U+115F, U+1160, U+3164, U+FFA0韩文填充符删除删除不可见字符显示成空白,常被拿来伪造一个看起来是空的字符串。
U+17B4, U+17B5高棉文固有元音删除删除不可见字符已弃用的高棉文元音符号,不占可见位置。
U+FFF9–U+FFFC注释与对象标记删除删除不可见字符行间注释控制符,以及对象替换字符。
U+FE00–U+FE0F变体选择符删除删除不可见字符在文字样式和 emoji 样式之间切换,本身不显示。emoji 内部的选择符会保留。
U+E0100–U+E01EF表意文字变体选择符删除删除不可见字符用来指定汉字的某个字形。紧跟在汉字后面时保留,单独出现时删除。
U+E0000–U+E007F不可见标签字符删除删除不可见字符一整套看不见的字母,可以把一段读者看不到的文字藏进正文。
U+0000–U+0008, U+000B, U+000C, U+000E–U+001F, U+007F, U+0080–U+0084, U+0086–U+009F控制字符删除删除不可见字符除制表符和换行以外的 C0/C1 控制符,粘贴来的正文里不该有。
U+202F窄不换行空格换成普通空格规范特殊空格U+202F。2025 年 4 月被很多人称作 ChatGPT 水印的就是它。法语在 ; : ! ? % 前面也会正规使用。
U+00A0不换行空格换成普通空格规范特殊空格看起来是空格,但不会在这里换行。从网页或 Word 复制的文字里非常常见。
U+2000–U+200A排版空格换成普通空格规范特殊空格U+2000 到 U+200A,包括 en、em、细空格、发丝空格等不同宽度。
U+205F中等数学空格换成普通空格规范特殊空格数学排版留下的空格,很容易当成普通空格。
U+1680欧甘文空格换成普通空格规范特殊空格古爱尔兰欧甘文的空格,有些字体把它画成一条短线。
U+3000表意文字空格换成普通空格规范特殊空格U+3000,中文、日文、韩文里的全角空格。想保留它时,请关掉「规范特殊空格」。
U+2800盲文空位换成普通空格规范特殊空格空的盲文点位。看起来像空格,只检查普通空格的过滤器会漏掉它。
U+000D回车符规范为换行始终处理Windows 换行 CRLF 里的那一半,会和后面的换行合并成一个换行。
U+0085下一行规范为换行始终处理U+0085,早期大型机使用的换行符。
U+2028, U+2029行分隔符与段分隔符规范为换行始终处理U+2028 和 U+2029。放进 JavaScript 字符串或某些 JSON 解析器会直接出错。
U+201C, U+201D, U+201E, U+00AB, U+00BB, U+2033弯双引号换成直双引号弯引号改成直引号弯引号、低位引号和书名号式引号,换成直引号。
U+2018, U+2019, U+201A, U+2039, U+203A, U+2032弯单引号换成直撇号弯引号改成直引号弯撇号和撇号式素数,换成直撇号。
U+2010, U+2011, U+2012, U+2013, U+2014, U+2015, U+2212长破折号与短破折号换成连字符破折号改成连字符长破折号、短破折号、减号和不换行连字符,统一成半角连字符。破折号是写法选择,不能拿来证明文字是 AI 写的。
U+2026省略号换成三个句点省略号改成三个句点把一个省略号字符换成三个句点。
  • U+202F 在法语里是 ; : ! ? % 前面的正规空格。如果文本是法语,请取消「规范特殊空格」。
  • 方向标记在阿拉伯语和希伯来语里是正常字符,同时也是 Trojan Source 攻击使用的字符。处理真正的双向文本时,请取消「删除不可见字符」。
  • U+3000 是中文、日文、韩文的全角空格。U+200C 零宽非连接符在波斯语和印地语里有意义。两者都可以通过上面的开关保留。
  • emoji 默认保护。属于 emoji 的连接符和变体选择符,包括家庭组合和肤色,不会被删除。同样的字符出现在普通文字里时会被删除。

这个工具能做什么

边贴边出报告

输入时就按字符种类计数,名字旁边带 Unicode 码位。

一键得到纯文本

不可见字符删除,特殊空格换成普通空格,弯引号换成直引号。不会改写你的句子。

留在这个标签页

检查和清理都在浏览器里进行。你粘贴的文字不会上传到原牛。

emoji 保持完整

家庭 emoji、肤色和 emoji 内部的变体选择符会留下。普通文字里单独出现的连接符仍会删除。

什么时候会用到

从聊天窗口贴出来的草稿

把模型草稿贴进公众号、邮件或文档之前,先去掉那些看不见的残留。

代码和配置解析失败

标识符里的零宽空格、配置文件开头的字节顺序标记、命令里的不换行空格。看起来没错,工具却不认。

表格去重对不上

两个看起来一样的单元格,一个里面是 U+00A0 或 U+202F,相等比较就会失败。

法语、阿拉伯语和中文

同一类字符在有些语言里是正确排版。开关可以只清理英文草稿,而不压平法语空格、全角空格或双向文本。

常见问题

AI 水印检测在找什么?

大家说的 AI 水印检测,找的是从聊天机器人和文字软件复制出来的隐藏字符和特殊字符:零宽空格、窄不换行空格 U+202F、不换行空格、弯引号、破折号,以及其他不可见 Unicode。这个页面在浏览器里做这件事,也可以把它们清掉。它不能发现藏在用词里的统计水印。

ChatGPT 真的用隐藏空格给文字加水印了吗?

2025 年 4 月,有人在 o3 和 o4-mini 的回答里发现大量窄不换行空格(U+202F),这个字符被广泛叫成水印。OpenAI 说那是训练副作用,不是水印,这种分布随后也消失了。现在仍然成立的是更普通的事:复制出来的文字经常带弯引号、破折号、奇怪的空格,有时还有不可见 Unicode。这个工具把这些字符显示出来。它不能证明这段话是模型写的。

清理会改我的措辞吗?

不会。清理不会改写、缩写或「人性化」草稿。它删除不可见字符,把特殊空格换成普通空格,在对应开关打开时把引号和破折号拉直,也可以去掉 Markdown 标记。每条规则都能关掉,复制之前报告会列出找到了什么。

我粘贴的文字会被上传吗?

不会。检查和清理都在你的浏览器标签页里进行。原牛不会收到你粘贴的文字,也不需要账号。页面仍可能加载本站常规的广告和分析脚本;这些脚本拿不到文本框里的内容。

清掉之后,AI 写的文字就能通过检测器了吗?

不能。删掉隐藏字符,既骗不过按文风打分的检测器,也去不掉 SynthID-Text 这类统计水印。字符清理做不到这两件事。

破折号能不能证明这段文字是生成的?

不能。破折号是正常标点,模型输出里也常见,所以有的编辑会把它当成一个提示。如果你想要连字符,可以打开破折号开关。关掉这个开关,破折号会保留。

为什么看不见的字符会让代码、表格和后台出错?

名字里的零宽空格、文件开头的字节顺序标记、命令里的不换行空格,看起来和你期望的字符一样,比较时却是另一个值。编译器、搜索、去重和数据库就会以很难用眼睛发现的方式失败。把粘贴的内容清一遍,能修掉这一类问题,和文字从哪来无关。

哪些字符可以保留?

关掉「规范特殊空格」,可以留下 U+202F(包括法语空格)和中文全角空格 U+3000。关掉「删除不可见字符」,可以留下阿拉伯语或希伯来语的方向标记,以及波斯语和印地语使用的零宽非连接符。emoji 默认保留。本页的表格就是检查器使用的完整清单。

相关的浏览器工具