aitextcleaner.top

AI Text Watermark Remover — Remove Hidden Unicode from AI Text

One engine for text from any assistant, in any language, including right-to-left scripts.

Hidden character report

Paste text to scan

Hidden characters across AI assistants

Different assistants render differently, but they share the same problem: what you see is a rendered page, and what you copy is a character stream. The gap between the two is where invisible characters live. A tool built for one assistant's output tends to work on another's, because the characters themselves come from Unicode rather than from any one product.

That is why this page exists as a separate entry point. The engine behind it is identical to the one on every other page of this site — the same published table, the same report, the same formatting rules. Only the explanation changes.

Bidirectional marks and mixed-language text

If you write in a right-to-left script, or mix one with a left-to-right language, you have met directional controls whether or not you knew their names. They tell a text engine which way to lay out a run of characters. Inside a chat window they do a real job. Copied into an editor that renders them differently, they can flip the punctuation around a phrase or reorder a line.

The engine removes all twelve of them, including the isolate controls that replaced the older embedding pairs. For text in a single direction this changes nothing visible. For mixed text it usually restores the order you expected.

Copying from a chat window into a document

The failure mode is rarely dramatic. A word refuses to break at the end of a line. A search for a phrase you can see on screen returns nothing. A spell checker flags a word that looks correct. Each of these has a mundane explanation, and an invisible character is one of the most common ones.

Because the tool shows counts per character type, you can tell these cases apart. One zero-width space in a long paragraph is noise. Forty of them, evenly spread, means the text was copied from a rendered answer without any editing in between.

What stays exactly the same

Letters, digits, punctuation, capitalisation, accents, emoji, tabs and paragraph order. The engine reads your text one code point at a time and copies everything forward unless it matches an entry in the table, so characters outside that table cannot be affected even in principle.

Emoji deserve a mention because they are stored as pairs of code units. The engine iterates by code point rather than by code unit, so a family emoji or a flag comes out intact instead of being split into broken halves.

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

Which assistants does this work with?

Any of them. The engine does not know or care where the text came from — it matches characters against a published Unicode table. If the text contains the characters listed in that table, they are found and removed, whatever produced them.

Does it handle right-to-left text?

Yes. All twelve bidirectional controls are removed, including the isolate controls used by modern text engines. Arabic, Hebrew, Persian and mixed-direction paragraphs are processed the same way as any other text, and the letters themselves are never reordered.

Does it work on long documents?

Yes. Paste as much as you like — there is no size limit. Very large inputs are flagged in the report area so you know why processing took a moment, but they are handled the same way as short ones, entirely inside your browser.