Skip to content

Free · runs in your browser

Invisible Character Remover

Paste text to see every invisible character it contains, listed by code point, name and position. Removing them runs entirely in your browser: nothing is uploaded, nothing is charged, and the visible wording is left exactly as it is.

Runs in your browser · nothing uploaded

Findings

Every invisible character will be listed here by name, code point and position.

Free and unlimited.

Need the statistical layer too? A token-choice watermark is not made of characters, so it needs the full rewrite instead.

How this works

Deterministic marks can be removed exactly. Probabilistic patterns can only be reduced. Simple Unmark keeps the two separate and does not promise detector outcomes.

  • This tool is deterministic and local. The scan and the cleanup both run in your browser, so the text never leaves your device and no account or credit is needed.
  • It reports each code point individually — the character, its U+ value, its Unicode name and where it occurs — so you can decide what to remove instead of trusting a black box.
  • Zero-width joiners and non-joiners are preserved by default, because deleting them damages emoji sequences and text in scripts such as Arabic, Persian, Hindi and Malayalam. Aggressive cleaners that strip them corrupt legitimate multilingual text.

Three steps

  1. 1

    Paste or type your text. The scan updates as you type, with no request sent anywhere.

  2. 2

    Review the listed code points. Each row names the character and shows how many times it occurs and where.

  3. 3

    Copy the cleaned text. Only invisible characters change; every visible character stays as it was.

Worked example

Before

user[U+200B]name[U+00AD] = [U+00A0]"value"

After

username = "value"

A zero-width space, a soft hyphen and a non-breaking space removed or normalised. This is why pasted identifiers and config values fail validation while looking perfectly correct on screen.

Scope

What this page can and cannot do

Can

  • List every covered invisible character by code point, name, count and position
  • Remove them locally, in your browser, with no upload and no account
  • Normalise non-breaking and typographic spaces to plain spaces
  • Leave the visible wording completely unchanged

Cannot

  • Tell you which tool or model inserted a character — presence is not provenance
  • Detect a statistical watermark, which is not made of characters at all
  • Fix a token-choice watermark from Gemini or Claude; that needs the full rewrite instead
  • Guess intent: a zero-width joiner may be essential to your text, which is why it is preserved by default

Submitted text and cleaned output are not stored in our application database, and no text is ever sent to analytics. Deterministic inspection on the invisible character remover runs entirely in your browser. See the privacy policy and methodology.

Coverage

Every character this tool handles

Published in full so you can check it rather than trust it. Zero-width joiners and non-joiners are deliberately absent: removing them corrupts emoji sequences and text in several writing systems.

Removed (28)

U+00ADSoft hyphen
U+034FCombining grapheme joiner
U+061CArabic letter mark
U+180EMongolian vowel separator
U+200BZero width space
U+200ELeft-to-right mark
U+200FRight-to-left mark
U+202ALeft-to-right embedding
U+202BRight-to-left embedding
U+202CPop directional formatting
U+202DLeft-to-right override
U+202ERight-to-left override
U+2060Word joiner
U+2061Function application
U+2062Invisible times
U+2063Invisible separator
U+2064Invisible plus
U+2066Left-to-right isolate
U+2067Right-to-left isolate
U+2068First strong isolate
U+2069Pop directional isolate
U+206AInhibit symmetric swapping
U+206BActivate symmetric swapping
U+206CInhibit Arabic form shaping
U+206DActivate Arabic form shaping
U+206ENational digit shapes
U+206FNominal digit shapes
U+FEFFZero width no-break space (byte order mark)

Normalised to a plain space (16)

U+00A0No-break space
U+1680Ogham space mark
U+2000En quad
U+2001Em quad
U+2002En space
U+2003Em space
U+2004Three-per-em space
U+2005Four-per-em space
U+2006Six-per-em space
U+2007Figure space
U+2008Punctuation space
U+2009Thin space
U+200AHair space
U+202FNarrow no-break space
U+205FMedium mathematical space
U+3000Ideographic space

Unicode tag characters (U+E0000–U+E007F) are also removed as a range. They have no legitimate use in ordinary prose and can encode hidden text inside visible text.

Questions

About invisible character remover

Sources

Is this really free?
Yes, and unlimited. The scan and cleanup are plain JavaScript running locally, so there is no per-request cost to pass on. Credits apply only to the model-backed rewrite, which is a separate tool.
Does the visible text change?
No. This tool only touches invisible characters and unusual spaces. If you also want the wording rewritten to address a statistical watermark, use the AI watermark remover instead.
Why can hidden characters break things?
Because software compares bytes, not appearances. A zero-width space inside an identifier, URL, password field or code sample makes two visually identical strings unequal, which surfaces as a validation error with no visible cause.
Do invisible characters prove text is AI-generated?
No. They are inserted by web pages, editors, PDF exports and chat clients for ordinary layout reasons. Treating them as an AI fingerprint is a common and unfounded claim.