Hidden Characters

Something is wrong with text that looks completely normal — a script throws an error on a line that reads fine, a CSV import breaks on the first column, two strings that look identical refuse to match. That is almost always a hidden character: a real character with no visible shape. Paste your text below and every one gets named, counted and shown exactly where it sits, before you remove it.

Cleaning happens in your browser: that text never leaves this page, and there is no upload, no account and no limit. Rewrite is the exception — that one sends your text to our server.

The symptom usually gives it away

What you're seeingLikely cause
A parser or compiler fails right at the start of the fileA byte-order mark (U+FEFF) at the very beginning — common in files exported from Windows tools.
Two strings that look identical fail an equality checkA zero-width space or joiner in one of them, invisible in any normal view.
Text wraps or hyphenates somewhere you didn't expectA soft hyphen carried over from a PDF or a word processor, invisible until the line breaks exactly there.
Find-and-replace or a search box can't find text you can plainly seeA non-breaking space standing in for one of the spaces you're searching for.
Your character or word count is a little higher than it should beAny of the above — they all count as characters even though none of them have a shape.

Why your editor doesn't already show you this

Most code editors have a "show whitespace" toggle, and it's tempting to assume that covers hidden characters too. It usually doesn't: that setting reveals ordinary spaces, tabs and line breaks by drawing a dot or an arrow over them. A zero-width space, a directional mark or a Unicode tag character has no dot to draw — by definition, it renders as literally nothing, which is exactly what makes it hard to find without a tool built to look for it specifically.

Finding them without guessing

There's no need to press a button just to check. As soon as you paste text into the box above, the count and the table below it update — that's the finding step, done before you've decided whether to remove anything. Below the count, a preview shows your text with every hidden character marked in place as its code point, so you can see exactly which word it's sitting inside rather than just knowing "there's one somewhere in here".

Removing them once you've found them

Press Clean and the marked characters are gone in one pass; your visible words, spelling and order come out identical to what you pasted. Paste the result back in to double-check — a second pass over already-cleaned text should always come back "Clean", because nothing with a visible shape is ever touched.

Questions

What's the difference between a hidden character and a special character?

A hidden character has no visible shape at all — nothing renders, even though it's there in the text. A special character usually means a visible symbol, such as an accented letter or an emoji. This tool only deals with the first kind; see the special characters remover page for that distinction in more detail.

Can hidden characters break my code?

Yes — a zero-width space inside a variable or key name, or a tag character inside a string literal, is invisible in an editor but very real to a compiler or a parser, and it will produce an error that points at a line that looks correct.

Do hidden characters show up in a normal find-and-replace?

Not unless you paste the exact hidden character into the search box, which you generally can't do because you can't see it to select it. That's why a dedicated checker is more reliable than search-and-hope.

Are hidden characters in a Word document different from the ones in a chat reply?

The characters themselves are largely the same — soft hyphens and non-breaking spaces show up in both — but they arrive for different reasons: Word inserts some for line-breaking, chat interfaces insert others while rendering a reply. Either way, this tool finds and removes them the same way.

Is there a hidden characters checker I don't need to install anything for?

Yes — this page runs entirely in your browser tab. Paste your text, read the count, and nothing is uploaded anywhere.

What this tool cannot remove

There are two different things people call an "AI watermark".

  • Invisible and typographic characters. This tool removes named characters that carry no visible glyph at all, as defined by the Unicode standard — not a number we made up. It also turns different space variants, including the narrow no-break space, into an ordinary space. Curly quotes and dashes go through a separate, optional step — typographic replacements, switched on by default; turn that option off and they stay exactly as typed. It also clears the three Unicode private-use ranges, including the tag range U+E0000–U+E007F used to hide data in plain text — those ranges hold no standard characters of their own, so we describe them rather than dress them up as a character count.
  • A statistical watermark in the word choice itself. Google's SynthID-Text, live in Gemini since May 2024, is documented to change no characters at all, so no character cleaner — ours included — has anything to catch. Anthropic has marked Claude's output the same way since 2 August 2026, to comply with the EU AI Act, but its own explanation (support.claude.com) confirms only that the mark exists, not how it works — so we can't promise it is built the same way SynthID is. What we can say: a character cleaner like this one only ever touches Unicode characters, and no watermark that relied on those would survive an ordinary copy-paste, so there is nothing here for it to remove either way. As of 10 September 2026, OpenAI's own content-provenance page lists a text watermark for neither ChatGPT nor its API.

If a tool promises to strip "the AI watermark" without making this distinction, it is describing the first thing while letting you believe it does the second.

Related tools

It is one cleaner behind all of these pages — the same characters, the same button. Only the explanation around it changes, so pick whichever matches your problem.

Illustrated portrait of Sam RidderBy Sam Ridder — I build and run TextNinja on my own hardware, on my own. Who I am.