Skip to main content

Clean AI Text

What's Inside AI Text, and Why You'd Clean It

CleanPastedText editorial · Updated

Text workbench

Try it on your text

Cleaning mode

Removes hidden characters and standardizes AI-style punctuation.

Try a real example

Each sample contains a problem you cannot see.

Original

Pasted text

0 chars · 0 words

Cleaned

Ready to copy

0 changes

Text stays in this browser

Same words · No AI rewriting · No content logging

What is actually inside AI-generated text?

Four layers of characters that are not words. AI output from ChatGPT, Claude, or Gemini looks like plain prose on screen, but the bytes underneath carry hidden Unicode, spaces that are not the ordinary U+0020, typographic punctuation, and the markdown the chat window was rendering for you. Each layer breaks something different once the text leaves the chat window.

1. Hidden characters

Code points with no visible glyph — zero-width space (U+200B), word joiner (U+2060), soft hyphen (U+00AD), byte order mark (U+FEFF). They are real characters to every program, so they break search, diffs, and code while leaving the page looking perfect. The full reference list names every one we detect.

2. Lookalike spaces

Non-breaking spaces (U+00A0) from the chat interface's HTML, and the narrow no-break space (U+202F) that briefly appeared in model output in April 2025. Both look exactly like a normal space and both forbid a line break, which is what glues words together when your layout reflows. See removing non-breaking spaces.

3. Typography tells

Curly quotes (U+2018, U+2019, U+201C, U+201D), em dashes (U+2014), and ellipsis characters (U+2026). These are visible, legitimate punctuation — but they clash with style guides, confuse markdown editors, and read to many people as an AI tell. Our em dash guide covers what the evidence actually supports.

4. Markdown residue

Chatbots write markdown — **bold**, ### headings, backticks — and the chat UI renders it. Paste as plain text and the raw markers come with it, so a report pasted into an email reads "**Key findings:**". Stripping them is an optional pass, because some editors (Notion) parse them into real formatting instead.

Where do the hidden characters in AI text come from?

Mostly from the pipeline around the model rather than from the model itself. Chat interfaces are HTML, and HTML is full of non-breaking spaces; Word, Google Docs, PDFs, and web pages add soft hyphens and exotic spaces of their own as the text passes through them. Originality.ai's testing found that the LLMs it tested did not inject invisible characters at all — the characters mostly arrive through those copy-paste pipelines.

Models have contributed too, once, in a well-documented episode. Days after OpenAI launched o3 and o4-mini on April 16, 2025, the academia startup Rumi reported that those two models were placing narrow no-break spaces (U+202F) where ordinary spaces belong in longer outputs. OpenAI told Rumi the characters were "a quirk of large-scale reinforcement learning" and not a watermark, and they disappeared from output within days. So the honest summary, as of August 2026: no mainstream chatbot is known to watermark its text with hidden characters, but hidden characters do reach your clipboard regularly, which is why a five-second check is worth it. The whole story is on our ChatGPT watermark page, and which hidden characters ChatGPT emits breaks the sources down character by character.

Why does AI text break formatting in Notion or WordPress?

Because rich editors treat these characters as instructions, not as decoration. A non-breaking space tells the layout engine it may not wrap there, so two words glue into one unbreakable unit on a narrow screen. A zero-width space inside a word makes that word unfindable in search while looking completely normal. Markdown markers either render as literal asterisks or get parsed into headings you did not ask for. And smart quotes inside a code block or a CSV import fail in ways that are painful to debug precisely because the text looks right.

The fix is the same in every destination: normalize the characters before you paste, not after. Our guide to pasting AI text into Word, Google Docs, and Notion has the per-app details, including why Ctrl+Shift+V only solves half the problem — it strips formatting, and every character in the list above survives it.

How do you clean AI text?

Paste it into the AI text cleaner — that is the tool page for this job, and it handles output from any model. It scans your text, names every hidden character it finds by code point, and returns the same wording with the character-level baggage removed. Everything runs in your browser; nothing is uploaded.

The order of operations matters more than it sounds. Detection runs first, on the untouched input, because NFKC normalization folds U+202F into a plain space — a tool that normalizes first can never tell you the character was there. Only after the per-character scan and strip does the text get normalized, whitespace-repaired, and (optionally) typography- and markdown-normalized. Every rule is documented on the how it works page, including which presets turn which passes on.

What does cleaning AI text not fix?

It does not make AI text undetectable, and any tool that promises otherwise is misleading you. AI detectors analyze the statistical structure of writing — word choice, sentence rhythm, perplexity and burstiness — which character cleaning never touches, because it changes zero visible words.

It also cannot remove a statistical watermark. Google DeepMind's SynthID-Text, described in Nature (October 2024), biases token sampling with a secret key and adds no characters whatsoever; Anthropic announced the same class of watermark for Claude models launched on or after August 2, 2026, explicitly stating that no Unicode characters are embedded. Character cleaning cannot touch either one. For the distinction between the two kinds of marking, read what a Unicode text watermark is.

What cleaning is genuinely good for: formatting hygiene, privacy (hidden characters can carry trackable data), and professionalism. Your text is never sent to a server, so confidential prompts and outputs stay confidential.

Common questions

Frequently asked questions

What is actually inside AI-generated text besides the words?

Four layers of characters that are not words. First, hidden Unicode with no visible glyph: zero-width spaces (U+200B), word joiners (U+2060), soft hyphens (U+00AD). Second, non-standard spaces that look like ordinary ones: non-breaking spaces (U+00A0) and narrow no-break spaces (U+202F). Third, typographic punctuation: curly quotes (U+2018, U+2019, U+201C, U+201D), em dashes (U+2014), ellipsis characters (U+2026). Fourth, markdown markers the chat window was rendering for you, which arrive as literal asterisks and hash marks when you paste as plain text.

Where do hidden characters in AI text come from?

Mostly from the pipeline around the model, not the model itself. Chat interfaces are HTML, so copied answers carry non-breaking spaces; Word, Google Docs, and PDFs add their own soft hyphens and exotic spaces on the way through. Models have contributed too: in April 2025 OpenAI's o3 and o4-mini briefly inserted narrow no-break spaces (U+202F) into longer answers, reported by the startup Rumi. OpenAI called it a quirk of large-scale reinforcement learning rather than a watermark, and it disappeared from output within days.

Do you need to clean AI text before publishing it?

Clean it whenever the destination treats characters as data rather than as pixels. Search, diffs, spellcheck, code, CSV imports, and responsive line wrapping all behave differently when a space is U+00A0 instead of U+0020, or when an invisible U+200B sits inside a word. For text that will only ever be read on screen it matters less, but it costs one paste to check, and the report names anything it finds.

How do you sanitize ChatGPT output for Notion or WordPress?

Run the text through a character-level cleaner before you paste, rather than fixing each app afterwards. Converting special spaces to U+0020, deleting invisible characters, and normalizing curly quotes and em dashes gives every destination the same plain input, so a paste into Notion, WordPress, or Webflow behaves like typed text. Markdown markers are a separate, optional pass, because in Notion those markers are useful — plain-text paste turns ### into a real heading.

What does cleaning AI text not fix?

Three things. It does not rewrite your wording, so it cannot change how an AI detector scores the text — detectors read word-choice statistics, not characters. It cannot remove statistical watermarks such as Google's SynthID-Text or the watermark Anthropic applies to Claude models launched on or after August 2, 2026, because those live in the token choices themselves and add no characters. And it does not check facts: a cleaned hallucination is still a hallucination.

Continue reading

Related guides & tools