What does text copied from ChatGPT actually look like?
ChatGPT writes its answers in Markdown: ## for headings, **bold** for emphasis, - or 1. for lists, and triple backticks for code blocks. ChatGPT's own interface renders that markup into formatted text, so it looks clean there. The trouble starts when you copy the rendered result into a destination that doesn't render markdown the same way — the symbols can come along as literal characters, or the destination's own paste handling adds its own spacing.
Separate from markdown, ChatGPT's prose tends toward typographically "smart" punctuation — em dashes, curly quotes, ellipses — the same habit documented across most current large language models, not something unique to ChatGPT. See why AI text is full of em dashes for the data behind that pattern, or the full breakdown of which hidden characters ChatGPT output carries.
The April 2025 U+202F episode — and why it wasn't a watermark
Days after OpenAI's o3 and o4-mini launched on April 16, 2025, researchers at Rumi documented narrow no-break spaces (U+202F) showing up in longer outputs from those two models. OpenAI's explanation was that it was "a quirk of large-scale reinforcement learning" rather than a deliberate marker, and the behavior disappeared within days. It remains the one confirmed case of a mainstream chatbot inserting a trackable hidden character into its output — see what a Unicode text watermark actually is for how that differs from the statistical watermarks Gemini and Claude use.
What still shows up in ordinary ChatGPT pastes is paste-pipeline noise, not model marking: non-breaking spaces (U+00A0) from the chat UI's HTML, curly quotes and em dashes from the model's writing style, and occasionally a byte-order mark or zero-width character introduced by whatever app you paste into next — Word, Google Docs, Notion, a CMS editor. See why text pastes weird for the full list of culprits, or the invisible Unicode characters list to see exactly what each one is.
Does ChatGPT have a statistical watermark like Gemini or Claude?
Not one OpenAI has announced. Google DeepMind has run SynthID-Text in Gemini since 2024, and Anthropic announced a comparable scheme for Claude models released on or after August 2, 2026. Both work by biasing which words the model picks during generation, using a secret key, rather than inserting any character — which is why SynthID-Text can't be found or removed by a character cleaner. As of this writing, OpenAI has not confirmed a deployed equivalent for ChatGPT text. If that changes, the same limitation would apply: a word-choice watermark lives in wording, not characters, so no cleaner — this one included — could touch it.
Honesty note: this tool removes character-level artifacts only. It is not, and does not claim to be, a way to defeat AI detection or strip a statistical watermark — see how AI detectors actually work for why word-choice patterns and hidden characters are separate problems.
Cleaning ChatGPT output before you paste it somewhere else
Paste ChatGPT's response into the cleaner above. The AI Clean preset (default) strips invisible and non-breaking characters and standardizes typography while leaving markdown symbols intact — the right choice for most destinations. If you're pasting into a field that shows raw text instead of rendering markdown, turn on Strip Markdown in Advanced Controls. If you'd rather keep ChatGPT's em dashes and curly quotes, use Keep Typography instead. For code, CSV, or any system that only accepts keyboard characters, use Plain ASCII. Full destination-specific notes live on pasting AI text into Word and Google Docs.