Unicode Lab — Inspect, Debug & Clean Hidden Characters
Search any character, symbol or emoji by name, keyword or code point (U+2014, 0x2014, 8212) and copy it in any language — HTML entity, JavaScript, CSS, JSON, PHP, Python or SQL escape. Or paste text to reveal invisible Unicode: zero-width spaces, non-breaking spaces, control characters, bidi marks, lookalike/confusable letters, mixed-script spoofing and mojibake, with full per-character details. All locally in your browser.
How to Use
- Search & copy: type a name or keyword (arrow, lambda, euro, check) or a code point (U+2014, 0x2014, 8212), or paste a character.
- Each result shows the character with its code point and bytes — click any format button (HTML, JS, CSS, JSON, PHP, Python, SQL) to copy that escape, or click the glyph to copy the character itself.
- Browse by category (Arrows, Math, Currency, Greek, Emoji…) using the chips.
- Inspect text: switch tabs, paste text, and it flags invisible/zero-width, control, bidi, space, lookalike and mojibake issues — with per-character detail and a one-click cleaner. Nothing is uploaded.
See what your editor is hiding
Plain text is rarely as plain as it looks. Copy a sentence from a PDF, a chat app, a spreadsheet, or a styled web page and you can pick up invisible passengers: zero-width spaces wedged between letters, a non-breaking space where you expected a normal one, a stray byte-order mark at the very start, soft hyphens, or bidirectional control marks that quietly reorder how text is displayed. None of them show up in a normal editor — but they break string comparisons, foul up search and regex, corrupt URLs and filenames, and cause the maddening “these two strings look identical but aren’t equal” bug. Unicode Lab puts your text under a microscope and labels every one of these characters so you can see exactly what is there.
Lookalikes, spoofing, and mojibake
Beyond the invisibles, the tool flags confusable letters — a Cyrillic “а”, a Greek “ο”, or a full-width “A” that are pixel-for-pixel twins of Latin letters — and warns when a single word mixes scripts, the trick behind look-alike domains and phishing usernames. It also detects mojibake: garbled text such as “café” or ““curly quotes— that happens when UTF-8 is mistakenly read as Windows-1252. When it spots the pattern, it re-decodes the bytes and offers the corrected text in one click. Everything is computed from the actual code points and UTF-8 bytes in your browser — no server, no upload, no AI.
Inspect and copy any character
Open any character to see its code point, Unicode name and general category, script, UTF-8 byte sequence, and normalization forms (NFC/NFD/NFKC/NFKD when they differ). Each one can be copied in the exact escape your code needs — HTML entity, JavaScript \uNNNN, JSON, CSS, a PHP "\u{…}" string or raw \xNN bytes, Python \uNNNN/\U000NNNNN, an SQL U&'\NNNN' literal, or the raw character itself — so you can move a tricky character into your editor without retyping it. Then use the cleanup options to strip the junk and hand back text you can trust.
Reference
About the Unicode Lab — Inspect, Debug & Clean Hidden Characters
Need a hand with web development and data tasks? The Unicode Lab — Inspect, Debug & Clean Hidden Characters does the work for you — free, and right here in your browser. Search any character, symbol or emoji by name, keyword or code point (U+2014, 0x2014, 8212) and copy it in any language — HTML entity, JavaScript, CSS, JSON, PHP, Python or SQL escape. Or paste text to reveal invisible Unicode: zero-width spaces, non-breaking spaces, control characters, bidi marks, lookalike/confusable letters, mixed-script spoofing and mojibake, with full per-character details. All locally in your browser.
How it works
Enter what you have and read the result as it updates live. It all runs on your own device, so it is quick and private, with nothing to install.
Want the deeper story? The Knowledge Base explains the ideas behind the tools in more detail.
Frequently Asked Questions
Is my text uploaded anywhere?
No. Every byte stays in your browser — the analysis, normalization and cleanup all run locally in JavaScript. Nothing is sent to a server or an AI, so it is safe to paste private or sensitive text.
What are zero-width and invisible characters?
They are real Unicode characters that take up no visible space — zero-width space (U+200B), word joiner (U+2060), the byte-order mark (U+FEFF), soft hyphens, and bidirectional control marks. They are invisible in normal editors but can break string comparisons, search, layout, or be used to hide or spoof text. Unicode Lab makes each one visible and lets you strip it out.
What is mojibake and can this fix it?
Mojibake is garbled text like “café” or ““quoted— that appears when UTF-8 text is read as Windows-1252/Latin-1. Unicode Lab detects the telltale byte patterns and offers a one-click fix that re-decodes the bytes correctly back to “café” and proper curly quotes.
What are confusable / lookalike characters and mixed scripts?
Many non-Latin letters look identical to Latin ones — Cyrillic “а”, Greek “ο”, or full-width “A” — so “раypal” can read as “paypal” while being a different string. The tool flags these homoglyphs and warns when a single word mixes scripts (a classic spoofing/phishing signal).
Which escape formats can I copy?
For any character you get HTML entities (&#xNNNN;), JavaScript (\uNNNN / \u{…}), JSON, CSS (\NNNN), PHP ("\u{…}" and \xNN bytes), Python (\uNNNN / \U000NNNNN), an SQL Unicode literal (U&'\NNNN'), the raw UTF-8 bytes, and the raw character itself.
Why does my emoji show as more than one item?
Many emoji are a single code point above U+FFFF (shown once, with its UTF-16 surrogate pair available in the detail view). Others are built from several code points joined with zero-width joiners (U+200D) plus variation selectors — Unicode Lab lists each part so you can see how the emoji is assembled.
How do I use the Unicode Lab — Inspect, Debug & Clean Hidden Characters?
Simply type your numbers and read the result, which refreshes the instant you change something. There is nothing to submit and nothing to wait for.
Is it free? Does it work without internet?
Yes to both. It is free with no sign-up, and once the page has loaded it keeps working even with no internet.
Where does my data go?
Nowhere — every calculation runs on your own device. Nothing you enter is uploaded, logged, or stored.
Common Use Cases
Debug a string that won't match
Find the hidden zero-width space or non-breaking space breaking your comparison or regex.
Clean copied content
Strip invisible junk and fix smart-quote mojibake before pasting into your CMS or code.
Check suspicious text
Spot homoglyph/mixed-script spoofing in a domain, username, or link before trusting it.
Inspect any character
Look up a code point's name, category, bytes and normalization, and grab the right escape for your language.
Last updated: