It renders as nothing but is still a real character. If it lands inside a CSS class or variable name, the interpreter sees two different strings even though they look identical — causing silent match failures.
Reveal zero-width spaces, non-breaking spaces, byte order marks, control characters, and smart-quote look-alikes hiding in copy-pasted text — the invisible bugs that break code, CSS classes, and JSON.
Paste any text that's behaving unexpectedly.
Every hidden or unusual character is highlighted inline with a labeled badge.
See a full table of each flagged character, its code point, and what it is.
Copy a cleaned version with invisible characters stripped and look-alikes normalized.
| Category | Name | Code Point | Notes |
|---|
ASCII codes 0-31 and 127 — leftover from teletype-era control signals. Sometimes appear in text pasted from terminal output or corrupted file conversions.
Zero-width space, joiner, and non-joiner render nothing but still count as characters — famous for silently breaking usernames, class names, and string equality checks.
Non-breaking space, em space, thin space — visually identical to a regular space but fail exact string matches and can break CSV parsing or CLI arguments.
Curly quotes and em-dashes from Word or iOS auto-correct — visible and often fine in prose, but break JSON, code strings, and shell commands.
It renders as nothing but is still a real character. If it lands inside a CSS class or variable name, the interpreter sees two different strings even though they look identical — causing silent match failures.
A byte order mark (U+FEFF) at the start of a file, often added by Notepad. In PHP it causes "headers already sent" errors; in JSON/CSV parsers it can cause a parse failure on the first line.
No. Unicode Converter transforms text between encoding formats. This tool inspects existing text for invisible or unusual characters already present. They're complementary and cross-linked.
No. All analysis happens entirely in your browser. Nothing is sent to any server.