AI output does often contain invisible Unicode — most commonly non-breaking and narrow no-break spaces. But these are mundane byproducts of text formatting, not a hidden watermark. Real text watermarking exists and works by biasing word choice statistically, leaving no special characters to find. You can check any text yourself in a few seconds.
The claim, and why it spread
Every few months a post goes viral showing that text copied out of ChatGPT contains hidden characters, with the conclusion that OpenAI is secretly watermarking output so it can be traced.
The observation is real. The conclusion is not supported.
What people are finding is genuine — paste a chat response into a character inspector and you will frequently see code points that render as nothing. The leap happens in the interpretation. A watermark has to survive editing, be hard to strip, and encode something. Characters that vanish the moment anyone runs a find-and-replace, and which carry no recoverable payload, do not meet any of those conditions.
What is actually in the text
The invisible characters that turn up in AI output are overwhelmingly ordinary typographic ones:
| Character | Code point | Why it appears |
|---|---|---|
| Non-breaking space | U+00A0 | Keeps a number and its unit on one line |
| Narrow no-break space | U+202F | Thin spacing before punctuation and in numbers |
| Zero-width space | U+200B | Line-break hints, often inherited from web text |
| Soft hyphen | U+00AD | Marks where a word may be split when wrapping |
| Byte-order mark | U+FEFF | Encoding artefact from an upstream file |
Each has a legitimate typographic purpose and each predates language models by decades. They arrive through the same routes as always: the model learned them from training text that contained them, the chat interface renders formatted output as HTML, and copying from a rendered web page carries whatever the markup contained.
That last route matters more than people expect. Much of what gets attributed to the model is actually introduced by the browser copy, not the generation. Copying the same response through the API frequently yields cleaner text than copying it out of the chat window.
Does AI text watermarking exist at all?
Yes — but it does not work the way the viral posts assume.
Google DeepMind's SynthID-Text is the best-documented approach, published in Nature in 2024. It works by subtly biasing which words the model samples at each step, so the finished text carries a statistical signature detectable by a matching verifier. There are no special characters involved. Nothing is inserted. The watermark lives in the choice of ordinary words, which is why it survives copying and light editing, and why you cannot find it by inspecting code points.
OpenAI has publicly discussed researching text watermarking and has not shipped a confirmed consumer-facing implementation for ChatGPT output.
The practical implication cuts against the panic: if a model you use is watermarked, stripping invisible characters will not remove it. And if you find invisible characters, that is not evidence of watermarking — it is evidence of formatting.
Why invisible characters matter anyway
Watermark or not, you usually want them gone, because they break things quietly:
- Search and find-and-replace fail. A zero-width space between two letters means searching for the word finds nothing, with no visible reason.
- Form validation rejects input. An email address or licence key with a trailing non-breaking space fails a comparison that looks correct on screen.
- Code will not compile or parse. A non-breaking space where a regular space belongs produces a syntax error pointing at a line that looks perfectly fine.
- CSV imports corrupt. A byte-order mark attaches to the first column header, so the first field silently fails to map.
- Duplicate records appear. Two entries that look identical are different strings, so deduplication misses them.
These failures are especially annoying because the text looks correct. Every debugging instinct points somewhere else.
How to check and clean your own text
Paste the text into the Invisible Character Scanner. It reports every zero-width space, soft hyphen, byte-order mark, and direction mark it finds, with a count for each type, and removes them on request. Nothing leaves your browser — the scan runs locally.
If you want the wider picture, the AI Text Cleaner covers invisible characters alongside em dashes, smart quotes, and emoji in one pass.
A habit worth building: run the check whenever text crosses a boundary between systems. Chat window into a code editor, web page into a spreadsheet, PDF into a form. That is where invisible characters cause damage, and it is the moment they are cheapest to remove.
For the full list of what these characters are and what each one does, see the invisible Unicode reference.
Frequently asked questions
Does ChatGPT watermark its text with invisible characters?
There is no evidence of that. Invisible characters found in ChatGPT output are ordinary typographic ones such as non-breaking and narrow no-break spaces, which have existed for decades and carry no payload. They also disappear under any basic cleanup, which would make them useless as a watermark.
Can AI-generated text be watermarked at all?
Yes. Google DeepMind's SynthID-Text, published in Nature in 2024, biases the model's word choices so the output carries a statistical signature. It inserts no special characters, so inspecting code points will never reveal it, and stripping invisible characters does not remove it.
Why does text copied from ChatGPT contain hidden characters?
Mostly because you are copying rendered HTML from a web page. The chat interface displays formatted output, and the copy carries the spacing characters that formatting used. Retrieving the same response through the API often produces noticeably cleaner text.
How do I find invisible characters in my text?
Paste it into a scanner that lists code points, such as our Invisible Character Scanner. It identifies each type of invisible character present, counts them, and removes them on request, running entirely in your browser.
Are invisible characters dangerous?
Not dangerous, but genuinely disruptive. They break search, cause form validation to fail, produce syntax errors in code, corrupt CSV headers, and create duplicate records that look identical. Because the text appears normal, these bugs are unusually hard to diagnose.