aitextcleaner.top

AI Text Cleaner — Remove Hidden Characters from AI Text

Paste anything you copied out of a chat window. See exactly which invisible characters are hiding inside it, then copy the clean version.

Hidden character report

Paste text to scan

What an AI text cleaner actually removes

Text copied out of a chat window is not plain text. It carries a thin layer of characters you cannot see: zero-width spaces between words, directional marks that steer the order of a line, soft hyphens waiting to appear at a line break, and non-breaking spaces that look identical to ordinary ones. None of them show up on screen, and all of them survive a paste into your editor, your CMS or your email client.

This tool separates that layer from the words. It reads your text one character at a time, matches every code point against a published table of invisible characters, and reports what it found before handing you the cleaned version. Nothing is guessed and nothing is rewritten — only the characters listed in the table below are touched.

How to clean your text in three steps

Paste your text into the left box. The tool does not start working until you ask it to, so you can look at what you pasted first.

Press Clean. The right box fills with the cleaned text, and the report underneath lists every character that was removed or replaced, with its Unicode code point and how many times it appeared. If your text was already clean, the report says so instead of inventing rows.

Press Copy to put the cleaned text on your clipboard. Your original stays in the left box so you can compare the two side by side before you commit to anything.

Why invisible characters end up in AI text

Chat interfaces render rich text, not plain text. Streamed answers are assembled from fragments, and the renderer inserts invisible markers to keep words from breaking in the wrong place, to hold emoji sequences together, and to handle mixed writing directions correctly. That is a reasonable thing for a renderer to do.

The trouble starts at the copy button. When you copy a rendered paragraph, the browser takes the character stream, not the picture you were looking at. Every marker the renderer added comes with it. Most editors show nothing unusual — until a word refuses to wrap, a sentence looks reversed, or a search for a phrase you can plainly see returns no results.

Where clean text matters

Publishing is the obvious case. A stray non-breaking space inside a headline can push a line past its container; a bidirectional override left in the middle of a paragraph can flip the punctuation around it. Both look like a styling bug and neither is one.

It matters just as much for anything machine-read: spreadsheet imports that silently drop rows, search indexes that miss a phrase, diff tools that report a whole line as changed when a single invisible character moved, and support tickets where a customer's error message will not match your logs.

Characters this tool looks for

25 invisible characters and formatting controls, with the action taken on each one.

CharacterCode pointActionWhat it does
Zero-width characters
Zero Width SpaceU+200BRemovedInvisible separator with no width. Commonly left behind when text is copied out of a chat window.
Zero Width Non-JoinerU+200CRemovedInvisible character that blocks two letters from joining in scripts such as Arabic or Devanagari.
Zero Width JoinerU+200DRemovedInvisible character used to glue emoji sequences together. Stray copies can break word wrapping.
Zero Width No-Break Space (BOM)U+FEFFRemovedByte order mark. Harmless at the start of a file, invisible noise anywhere else.
Word JoinerU+2060RemovedTells a text engine not to break a line here. Invisible, and easy to carry along by accident.
Mongolian Vowel SeparatorU+180ERemovedA legacy invisible separator from Mongolian script that now renders as nothing at all.
Bidirectional controls
Left-to-Right MarkU+200ERemovedDirectional hint for mixed-script lines. Invisible on screen but present in the character stream.
Right-to-Left MarkU+200FRemovedMirror of the left-to-right mark, used to steer the order of mixed-direction text.
Arabic Letter MarkU+061CRemovedInvisible directional marker for Arabic text. Rarely intentional outside its original document.
Left-to-Right EmbeddingU+202ARemovedOpens an embedded left-to-right run. Unpaired copies can scramble the order of a sentence.
Right-to-Left EmbeddingU+202BRemovedOpens an embedded right-to-left run. Left behind after copy-paste, it can flip nearby punctuation.
Pop Directional FormattingU+202CRemovedCloses an embedded directional run. Without its partner it is pure invisible noise.
Left-to-Right OverrideU+202DRemovedForces following characters to display left-to-right regardless of their own direction.
Right-to-Left OverrideU+202ERemovedForces following characters to display right-to-left. A common cause of text that looks reversed.
Left-to-Right IsolateU+2066RemovedModern replacement for the embedding controls. Still invisible, still travels with copied text.
Right-to-Left IsolateU+2067RemovedIsolates a right-to-left run from the surrounding paragraph direction.
First Strong IsolateU+2068RemovedIsolates a run whose direction is decided by its first strong character.
Pop Directional IsolateU+2069RemovedCloses an isolate opened by one of the isolate controls above.
Formatting controls
Soft HyphenU+00ADRemovedA hyphen the reader only sees if the word happens to break at the end of a line.
Carriage Return (CR)U+000DRemovedHalf of a Windows line ending. Kept on its own it produces doubled spacing in most editors.
Markdown Asterisk MarkerU+002ARemovedBold or italic marker such as ** left behind when text is copied in its raw form. Turn this group off to keep Markdown styling marks.
Markdown Backtick MarkerU+0060RemovedInline-code backtick left behind after copying raw assistant output. Turn this group off to keep inline code marks.
Invisible spaces
No-Break SpaceU+00A0→ spaceLooks exactly like a space but stops a line from breaking there. A frequent copy-paste leftover.
Figure SpaceU+2007→ spaceA space as wide as a digit, used to align numbers in tables. Replaced with a normal space.
Narrow No-Break SpaceU+202F→ spaceA thin, non-breaking space from French typography. Replaced with a normal space.

Frequently Asked Questions

What counts as a hidden character?

Anything in our published table: zero-width spaces and joiners, the byte order mark, directional marks and embedding controls, soft hyphens, and three kinds of invisible space. The table lists every one of them with its code point, and the report tells you which ones were present in your text.

Does this tool upload or store my text?

No. The cleaning runs as ordinary JavaScript inside the page you are already looking at. There is no server to send it to, nothing is written to your device, and refreshing the page clears everything. You can confirm this yourself by watching the network panel while you press Clean.

Will cleaning change my wording?

No. Words, punctuation, capitalisation, line order and emoji are untouched. The only characters that change are the invisible ones in the table. Long runs of spaces and blank lines are also tightened, and the report counts those separately so you can see exactly what happened.