Classification
Invisible Unicode marks, markdown artifacts & rich-text wrappers
Origin
AI chat interfaces — ChatGPT, Claude, Gemini — and the rich editors they render into
Target
CMS posts (WordPress, Webflow), email, documents, code

The problem

An AI assistant doesn’t hand you plain text. It renders its answer as styled HTML in your browser, and when you drag-select and copy, your clipboard captures that rich formatting — plus a surprising amount of material you can’t see at all. Zero-width spaces, joiners, and byte-order marks get sprinkled through the text; some platforms insert specialized spacing characters; and the visible layer carries markdown leftovers, inline citation numbers, and live hyperlinks.

None of it shows on screen. All of it travels with the copy.

What rides along invisibly

Here is a two-sentence answer copied from an AI chat. It reads clean. The pills mark things that are actually present in the text but render invisibly (or nearly so):

Before · pasted straight from an AI chat

The migration finishedZWSPsuccessfullyBOM and no records were lost.U+202FReview the summary[1] or open the full report for details.

4 invisible marks · 1 citation · 1 live link

The zero-width space, byte-order mark, and narrow no-break space are genuinely invisible on screen. The [1] is a leftover citation anchor, and “full report” is a hyperlink that will paste as blue underlined text into your document.

The consequence

Paste that into WordPress, Webflow, or an email and the hidden layer surfaces:

  • Invisible characters break alignment and search. A zero-width space wedged inside a word means a find-and-replace for that word silently fails, and justified text spaces oddly around marks nobody can see.
  • The rich-text layer overrides your styles. Hyperlinks arrive as blue underlined anchors, citation numbers as superscripts, and pasted headings in someone else’s font.
  • Some of those marks are there on purpose. Zero-width and specialized spacing characters are sometimes used to fingerprint or track text, so stripping them isn’t just cosmetic.

The one-pass fix

Three actions cover the whole mess, and Full Clean runs all of them together:

  • Remove Hidden Characters (key 8) deletes the zero-width and invisible marks and normalizes exotic spaces to ordinary ones.
  • Strip HTML Tags (key 6) flattens hyperlink anchors and rich-text wrappers back to plain words.
  • Straighten Quotes (key 5) converts any curly quotes, dashes, and ellipses the model emitted into standard keyboard characters.
After · Full Clean

The migration finished successfully and no records were lost. Review the summary or open the full report for details.

flat, predictable, publication-ready

Every invisible mark is gone, the citation anchor and hyperlink are flattened into ordinary words, and what remains adopts whatever styling your destination document uses.

Why this is a modern problem worth naming

Most text strippers were built long before generative AI existed, so they never accounted for zero-width watermarking marks or the rich clipboard payload an AI chat produces. Treating “clean up text pasted from ChatGPT, Claude, or Gemini” as a first-class task reflects how people actually work today — drafting in an AI tool, then moving the result into a CMS, a doc, or an email.

The clean fix

Make it a habit: before AI copy goes into anything you publish or send, drop it into cleanplaintext.com and run Full Clean (or just Remove Hidden Characters if the visible formatting is already fine). It all happens locally — nothing you paste ever leaves your device.