Hidden Characters in ChatGPT Text: What They Are and How to Remove Them
Published 12 November 2026 · 5 min read · By the TraceWipe team
You paste text from ChatGPT into a document and something is slightly off: a line won’t wrap, a search can’t find a word you can clearly see, or a website form rejects it. The culprit is often a character you can’t see.
This guide explains which invisible characters appear in AI-generated and copied text, whether they are “watermarks”, and how to find and remove them.
What “hidden characters” are
Unicode — the system computers use to represent text — includes many characters that take up no visible space or look identical to an ordinary space. They have legitimate uses in typesetting and in languages such as Arabic, Persian and Hindi, but in everyday English text they’re usually accidents.
The most common ones are:
| Character | Code | What it does |
|---|---|---|
| Zero-width space | U+200B | An invisible break opportunity — no width at all |
| Zero-width non-joiner / joiner | U+200C / U+200D | Control how letters or emoji join |
| Word joiner | U+2060 | Prevents a line break, invisibly |
| Byte-order mark | U+FEFF | A leftover file marker that sometimes ends up mid-text |
| Soft hyphen | U+00AD | Only visible when a word breaks at the end of a line |
| No-break space | U+00A0 | Looks like a space, but doesn’t allow a line break |
| Narrow no-break space | U+202F | A thinner no-break space, used in some number and date formats |
| Bidirectional controls | U+202A–U+202E, U+2066–U+2069 | Change the direction text is displayed |
| Unicode tag characters | U+E0000–U+E007F | Invisible copies of ASCII letters — can spell out a whole hidden message |
Does ChatGPT add hidden watermarks to text?
This question went viral in April 2025, when users and an education start-up reported that OpenAI’s newer reasoning models were inserting narrow no-break spaces (U+202F) into longer answers. Many people concluded this was a secret watermark.
OpenAI’s response, as reported at the time, was that the characters were a quirk of how the models were trained, not an intentional watermark — and later tests suggested the behaviour had largely stopped. OpenAI has said publicly that it researched text watermarking but held back from deploying it, citing how easily it could be defeated and concerns about unfairly affecting non-native English speakers. Policies are evolving, particularly as AI-transparency laws take effect, so check the provider’s current documentation.
Either way, two things are clear:
- Hidden characters are not a reliable way to identify AI text. They appear in text from many sources — word processors, PDFs, web pages, messaging apps — and they vanish with a simple clean-up.
- Removing them does not make text “undetectable”. AI detectors analyse writing patterns, not invisible characters.
Why hidden characters are still a problem
Even when they mean nothing, invisible characters cause real trouble:
- Broken formatting — odd line breaks, words that won’t wrap, misaligned text.
- Search and find failures — “invoice” with a zero-width space in it won’t match a search for “invoice”.
- Code and data errors — a stray U+FEFF or U+200B in a config file, CSV, spreadsheet formula or URL can cause errors that are very hard to spot.
- Form and username rejection — sites may reject input containing unusual characters.
- Hidden instructions — Unicode tag characters can hide entire sentences inside innocent-looking text. Security researchers have shown how this can smuggle instructions to AI systems (“prompt injection”) that humans reading the text never see.
- Spoofing — bidirectional controls can make text or code display differently from how it actually runs (the “Trojan Source” technique).
How to find hidden characters
- Open the TraceWipe AI text cleaner.
- Paste your text.
- The tool counts every hidden character, names it (for example ZERO WIDTH SPACE) and highlights exactly where it sits in your text.
- If the text contains Unicode tag characters, the hidden message they spell out is decoded and shown.
Everything runs in your browser, so the text never leaves your device.
Paste, clean, copy — in seconds.
How to remove hidden characters
In the text cleaner, the clean version appears alongside your original. You can choose to:
- Turn special spaces into normal spaces — converts no-break, thin and narrow spaces into ordinary ones.
- Collapse double spaces — tidies spacing left behind.
- Straighten quotes and dashes — turns “curly quotes”, em dashes (—) and ellipses (…) into plain keyboard characters. Useful for code, CSVs and plain-text systems.
- Keep or remove emoji modifiers — emoji such as family groups and coloured hearts rely on joiners and variation selectors, so these are kept by default.
Then click Copy clean text.
Other ways to do it
- Microsoft Word: turn on Show/Hide ¶ to reveal some formatting marks, then use Find and Replace with special characters. This doesn’t reveal every zero-width character.
- Code editors: VS Code highlights many invisible and ambiguous Unicode characters by default.
- Paste as plain text: Ctrl + Shift + V (Windows) or Cmd + Shift + Option + V (Mac) removes formatting but not invisible Unicode characters.
Frequently asked questions
Will removing hidden characters change my words?
No. The cleaner removes or normalises invisible and special-space characters only. The optional quote and dash straightening changes punctuation style, and is off by default.
Is it safe to remove characters in Arabic or Persian text?
Zero-width joiners and non-joiners can be meaningful in some scripts, and direction marks matter in right-to-left text. Review the result before using it, and keep your original.
Do other AI tools add hidden characters?
Hidden characters can appear in text from any source, including other chatbots, PDFs and web pages. Treat them as a formatting issue rather than proof of where text came from.
Can hidden characters hide a message for AI?
Yes. Unicode tag characters can encode a whole sentence that is invisible to people but readable by software, including AI models. The text cleaner decodes and displays any such message.
All TraceWipe tools run privately in your browser.