Hidden Characters in ChatGPT Text: How to Find and Remove Them Before You Send
Text copied out of a chat window can carry characters you cannot see. Here is what they are, whether they are a watermark, the trouble they cause, and how to strip them in seconds.
Characters you cannot see
Copy text out of a chat window, a web page or a PDF and it can bring characters with it that take up no space, or that look exactly like a normal space. You will not see them in Gmail or Outlook. They are still in the message when it arrives.
The common ones:
| Character | Code | What it is for |
|---|---|---|
| Zero-width space | U+200B | Marks a place a long word may break. Invisible. |
| Zero-width non-joiner | U+200C | Stops two letters joining in scripts like Persian. Invisible in English. |
| Zero-width joiner | U+200D | Joins characters, as in some emoji. Invisible on its own. |
| Word joiner | U+2060 | Stops a line break. Invisible. |
| Byte-order mark | U+FEFF | A leftover from file encoding. Invisible. |
| Soft hyphen | U+00AD | A hyphen that only shows if the word breaks at the end of a line. |
| Non-breaking space | U+00A0 | Looks like a space but stops a line break. |
| Narrow no-break space | U+202F | A thinner non-breaking space. |
Each one has a real use in typesetting or other languages. None of them belongs in an email you typed yourself.
Is it a ChatGPT watermark?
Probably not. In April 2025 the education startup Rumi reported that OpenAI's new o3 and o4-mini models were putting narrow no-break spaces into longer answers, and asked whether it was a hidden watermark. In an update, Rumi said OpenAI told them the characters were a quirk of large-scale reinforcement learning, not a watermark, and a few days later Rumi reported that they had stopped appearing.
The story spread fast, and a wave of "ChatGPT watermark remover" sites followed. Whatever the cause, the practical point is the same: text pasted from a chatbot sometimes carries characters a person typing would never produce, and anyone who pastes your email into a checker or opens it in a code editor can see them.
The trouble they cause
Beyond showing where the text came from:
- Links break. A zero-width space inside a web address makes it a different address. It looks right and goes nowhere.
- Search misses the email. If a hidden character sits in the middle of a word, searching for that word will not find it.
- Lines wrap oddly. Non-breaking spaces stop a line wrapping where it should, so a sentence can run off the edge of a phone screen.
- Pasted commands fail. A command copied into a terminal with a non-breaking space in it can fail with an error that makes no sense.
How to find them
The quickest way is a checker. Paste the text into our free invisible character remover. It shows which hidden characters are in the text and how many of each, and gives you a clean copy. It runs in your browser and needs no sign-up.
If you use a code editor, VS Code highlights unusual invisible characters by default. You can also search with this regular expression to find every character in the table above:
How to remove them
- Use a checker. The remover above strips them all in one click.
- Find and replace, in two passes. In any editor that supports regular expressions, replace the characters that take up no space with nothing, then replace the two no-break spaces with a normal space. Doing it in one pass either splits words or joins them.
- Retype short text. For a sentence or two, typing it again is faster than cleaning it.
One thing that does not help: pasting as plain text. Cmd+Shift+V on a Mac or Ctrl+Shift+V on Windows removes formatting like bold and fonts, but these are characters, not formatting, so they come along anyway.
Catch them every time
Hidden characters are the one sign of pasted AI text that you cannot spot by reading carefully, because there is nothing to see. Presend checks every email and message when you click send, in Gmail, Outlook, Slack and the other places you write. When it finds zero-width characters, soft hyphens, byte-order marks or non-breaking spaces, it tells you how many of each and strips them in one click. It also flags the words and phrases that make an email read like a chatbot wrote it.
Ready to try Presend?
Free to start. Nothing you write is stored. 30-second install.
Add to Chrome (free)