Strip Invisible Characters

0 characters
Options

Aggressive mode can visibly change emoji, flags and right-to-left text. Off by default.

What this removes

Invisible Unicode characters that survive copy and paste:

Optional passes handle em dashes, exotic spaces and curly punctuation. The report below the output box lists every codepoint it removed and how many.

What this keeps by default

Some invisible characters carry meaning. Removing them would damage your text, so they stay unless you turn on aggressive mode:

What this cannot remove

A Claude watermark has two separate layers, and this tool handles only the first one.

The first layer is invisible characters. Those are listed above, they can be found and deleted deterministically, and this tool shows you exactly what it took out.

The second layer is a statistical pattern carried by word choice itself. It is not a character you can delete — it is the sequence of words Claude picked. Removing it means rewriting the wording, which is a different job. This page does not rewrite your sentences, so it does not touch that layer. We show no removal score and no “percent human” number, because a browser-side tool has no way to verify one, and a number nobody can check is just decoration.

Supported input

Not supported: PDF, Word .docx, Pages and image files. Stripping metadata out of those needs a parsing library or a server, and this page is a single static file that runs in your browser. Rather than pretend otherwise, the file picker does not accept them.

Nothing you paste is uploaded. The cleaning runs in this browser tab.

How it works

Your text is read one codepoint at a time. Each character is checked against the removal sets above, and against the keep list, which runs first — a character that matters for emoji or for a complex script is never removed in default mode. Everything deleted is counted by codepoint, and the counts are printed in the report so you can check the work instead of trusting it.

FAQ

What is an invisible character?

A Unicode character that holds a position in your string and draws nothing on screen. Most are format characters, general category Cf. The one you almost certainly have is U+200B ZERO WIDTH SPACE: three bytes, one character, invisible, and it survives copy and paste.

How do I remove invisible characters?

Paste the text into the box and press Remove invisible characters. The characters come out, the report lists every codepoint it removed and how many of each, and you copy the cleaned text in one click. Nothing is uploaded — the work happens in this tab.

Does this remove a Claude watermark?

It removes the invisible-character layer of one. Text that comes out of Claude can carry zero-width and tag characters, and those are found and deleted deterministically. The other layer is a statistical pattern in the word choice itself, which is not a character and cannot be deleted here — that needs a rewrite, which is a different job.

Will this make my text undetectable by AI detectors?

No, and any page promising that is guessing. This removes invisible characters. It does not rewrite your wording, so the statistical pattern in the word choice stays. There is no removal score and no “percent human” number here, because a browser-side tool has no way to verify one.

Which characters does it keep?

The ones that carry meaning. U+200D holds emoji families together as one picture, U+200C is required for correct Persian, Arabic and Devanagari, and U+FE0F keeps an emoji rendering as an emoji. Those stay unless you turn on aggressive mode, which takes them out too.

Do you store what I paste?

No. There is no backend and no analytics. The cleaning happens in this tab and the text never leaves your device.

Is it free, and does it work on a phone?

Free, no sign-up, no account, no usage counter and no email wall — it is a single static page with no server behind it, so there is nothing to meter. On a phone the page is one column, the text boxes resize to the viewport, and the report table scrolls sideways instead of pushing the layout apart.