CHATGPT Published September 9, 2026

How to Remove Hidden Characters from ChatGPT Text (Free, in Your Browser)

Short answer: paste the text into the ChatGPT watermark remover, click Remove, and copy the result. The default clean strips zero-width spaces, soft hyphens, interior byte-order marks and clipboard fragments, flags the riskier characters for you to decide, and shows a receipt of what left. Nothing is uploaded. It is a cleanup, not a watermark removal, because ChatGPT text has no watermark.

CHATGPT WATERMARK STATUS Sep 9, 2026
Type
None confirmed
Hidden characters
No
Official detector
Unavailable: Unavailable
Locally removable
Yes, in part

Hidden characters in a ChatGPT paste are real, common and removable. They are also not a watermark, and a cleanup that pretends otherwise is selling you something. This guide covers what the characters are, where they come from, and the exact steps to take them out in your browser with a receipt.

What "hidden characters" means here

Text can carry code points that render as nothing, or as something that looks like a normal space. The ones that turn up in pasted AI output fall into a few groups.

  • Zero-width characters: U+200B zero-width space, U+200C zero-width non-joiner, U+200D zero-width joiner, U+2060 word joiner, and U+FEFF, the byte-order mark, when it appears mid-text.
  • Invisible spacing: U+00A0 non-breaking space, U+202F narrow no-break space, and their less common relatives.
  • Soft hyphens: U+00AD, invisible until a line breaks at it.
  • Direction controls: U+202A to U+202E and U+2066 to U+2069, which change how a run of text is laid out.
  • Variation selectors: U+FE00 to U+FE0F, which change how a preceding character is drawn.
  • Clipboard fragments: not characters at all, but the class names and styling that a rich-text copy drags along from a web page.

The Claude invisible characters explainer covers the same list from the other direction, for people who arrived expecting a watermark.

Where they come from

Three sources account for nearly all of them.

The paste itself. Copying from the ChatGPT web app, or from any web page, can bring HTML fragments and non-breaking spaces along with the words. Browsers copy the rich version, and the rich version carries markup.

Editors upstream. Word, Google Docs, PDFs and email clients all insert non-breaking spaces, soft hyphens and the occasional direction control for their own layout reasons. Text that passed through one of them before it reached you carries their fingerprints.

Model quirks, rarely. For a few days in April 2025, o3 and o4-mini emitted U+202F in long responses. OpenAI called it a training quirk and it stopped. That is the whole story, and current models do not do it.

What is not on the list is a watermark. OpenAI has never deployed one for text, and the providers who do watermark text, Google and Anthropic, put the mark in word choice, not in characters. Does ChatGPT watermark its text? has the sourced answer.

Step by step

  1. Paste. Open the ChatGPT watermark remover and paste the text. The scan starts on paste. Nothing is uploaded: the counter in the header stays at 0 B.
  2. Read the findings. Each hidden character found is listed as a chip with its code point, its name and a count. Clipboard fragments get their own row rather than being mixed in. Lookalike letters from other scripts are listed separately, because they are not removable.
  3. Look at the X-Ray if you want to. The X-Ray view renders the whole text with every hidden character as a visible token in its position. Click a token to see what it is and remove it on its own.
  4. Click Remove. The button says how many marks it will remove. By default that is the inert set: zero-width spaces, soft hyphens, interior byte-order marks and clipboard fragments.
  5. Opt in to the rest. Non-breaking and narrow no-break spaces can be replaced with ordinary spaces when you tick that option. Joiners, direction controls and variation selectors can be removed one at a time, each with a note on what removing it can break.
  6. Read the receipt. The cleaned text is scanned a second time, and the receipt lists what actually left, by code point and position, next to what stayed and why.
  7. Copy. The Copy clean text button puts the cleaned version on your clipboard as plain text, so nothing rides along on the way out.

What the default clean leaves alone, and why

A cleaner that strips everything invisible breaks things. The zero-width joiner holds multi-part emoji together and is real spelling in Persian, Arabic and several Indic scripts. Direction controls are required for correct Hebrew and Arabic layout inside a mostly Latin document. Variation selectors pick the right glyph for an emoji or a CJK character. The narrow no-break space is standard French punctuation.

So the default removes only what is inert almost everywhere, and flags the rest for a decision. Lookalike letters, such as a Cyrillic а standing in for a Latin a, are flagged but never removed, because replacing them is a spelling change, not a cleanup.

Doing it elsewhere

If you would rather not use a website at all, a code editor does most of the job. VS Code highlights invisible and ambiguous Unicode by default, and its find-and-replace accepts regular expressions, so a search for the code points above removes them. Word's Show formatting marks toggle reveals non-breaking spaces and soft hyphens as symbols you can search for. None of these show you a receipt, and none of them warn you before you break an emoji, which is the difference this tool is built around.

What this does and does not achieve

After the clean, the text contains exactly the printable characters you can see and nothing else. That is worth having: it stops layout surprises in a document, keeps a code block from failing on an invisible character, and removes the debris a web paste carries.

It does not remove a watermark, because ChatGPT text has none. It does not change how GPTZero, Originality.ai or Turnitin score the writing, because those tools read style and never looked at the invisible characters in the first place. The receipt says so, in the row it cannot touch, every time.

Clean a ChatGPT paste

Runs locally · nothing uploaded

Open remover

FAQ