Invisible Character Remover

Runs 100% in your browser — nothing you paste is uploaded or stored.

What are invisible characters?

Unicode reserves a small set of code points that carry no visible glyph at all. They take up a character slot in the text — your word processor or word count sees them, a diff tool flags them, a script that reads the file byte by byte trips over them — but nothing appears on screen. That's exactly what makes them frustrating: a search that should match, a line that wraps in the wrong place, or a script that fails to parse a value all point back to the same cause, and there's no visual clue to follow. An invisible character remover exists because you can't fix what you can't see; it scans the raw code points in your text rather than relying on how the text is rendered, then tells you exactly what was hiding in there.

Where hidden characters come from

Almost nobody types these characters on purpose. They arrive as a side effect of how text moves between applications. Copying from a web page can bring along a no-break space that the site used to keep a price and its currency symbol on one line, or a zero-width space that a CMS inserted into a long URL so it would wrap instead of overflowing its column. Word processors routinely save a byte order mark at the very start of a file. Text typed on a phone keyboard, translated by machine translation, or copied out of a PDF can pick up directional marks, soft hyphens, or joiners meant to control how mixed-language or justified text renders in its original context. None of this is malicious — it's just formatting metadata that made sense where the text came from and stopped making sense the moment you pasted it somewhere else. Once you know to look, hidden characters in text turn out to be a routine, everyday byproduct of copy-paste rather than anything unusual.

Characters this tool detects

This tool checks every character in your input against the following list. Some of them are true zero-width characters with no width at all; others, like the no-break space, are visible-width but still behave in ways a normal space doesn't.

Character Code point What it typically does
No-Break Space U+00A0 Looks like a regular space but blocks a line break at that position
Soft Hyphen U+00AD Invisible unless the word actually breaks there, then shows as a hyphen
Zero Width Space U+200B No width at all; used to hint where long words or URLs may wrap
Zero Width Non-Joiner U+200C Stops adjacent characters from visually joining in scripts like Arabic or Persian
Zero Width Joiner U+200D Joins characters or emoji into a single combined glyph
Left-to-Right Mark U+200E Invisible hint that nearby text should flow left-to-right
Right-to-Left Mark U+200F Invisible hint that nearby text should flow right-to-left
Line Separator U+2028 A line break that many programs don't treat as an ordinary newline
Paragraph Separator U+2029 A paragraph break with the same parsing quirks as the line separator
Word Joiner U+2060 No width; prevents a line break without inserting any visible space
Zero Width No-Break Space (BOM) U+FEFF Byte order mark, often left at the very start of a saved text file
Variation Selector-1 through -16 U+FE00–U+FE0F Modifies how the preceding character or emoji is drawn

Whatever the source, the fix is the same: run a zero width space remover pass that recognizes every entry on this list, not just the one or two characters you happen to know about, so you can actually remove unicode characters that are causing the problem instead of guessing at which one it is.

How to use the remover

Paste your text into the box on the left. As you type or paste, the report below the boxes updates immediately to say whether anything was found — and if so, exactly which code points, by name, and how many of each. The box on the right always shows the cleaned result: a no-break space becomes a regular space, line and paragraph separators become normal newlines, and every other character in the table above is stripped out entirely. Click Copy to grab the cleaned text, or Clear to start over. Everything runs locally in your browser — nothing you paste here is uploaded, logged, or stored anywhere.

Frequently asked questions

Why does my text contain zero-width spaces?

Almost always as a side effect of copying from somewhere else. Web pages and content management systems often insert zero-width spaces into long URLs or words so they can wrap onto a new line. Messaging apps, PDF exports, and machine translation tools can do the same. It's rarely intentional on your part — it's leftover formatting from wherever the text came from.

Will removing hidden characters change how my text looks?

Almost never, since these characters are invisible by definition — removing them doesn't remove anything you could see. There are three exceptions: a no-break space becomes an ordinary space, which means a line that previously refused to break there might now wrap earlier than before; line or paragraph separators become normal newlines, which can shift how the text lines up in editors that treat those differently; and emoji built from a zero width joiner or a variation selector can visibly change shape — a joined family emoji can split into separate figures, and a heart or other symbol shown in its emoji style can fall back to its plain text-style glyph once its selector is gone.

What is a BOM (byte order mark)?

A byte order mark is an invisible marker, U+FEFF, that some programs write at the very start of a text file to signal its encoding. It's usually harmless, but because it's an extra character sitting before your first visible one, it can break scripts that expect a file to start with a specific value — a common symptom is a CSV or JSON file that fails to parse for no obvious reason.

Can invisible characters be used to watermark AI text?

It's technically possible — zero-width characters can encode a hidden pattern, and researchers have proposed and demonstrated this as a way to mark or trace generated text. But it isn't something mainstream AI assistants are known to do routinely to their output. In practice, the invisible characters people find in AI-generated or any other text are far more often accidental leftovers from copy-paste, web page markup, or word processors than a deliberate watermark.