Unicode Character Inspector – See Every Code Point in Your Text
Text that looks correct on screen can still be wrong in memory. The Unicode Character Inspector takes any string you paste and breaks it apart character by character, reporting the code point, official name, general category, Unicode block and script, the decimal, hex, octal and binary values, the UTF-8, UTF-16 and UTF-32 byte sequences, and ready-to-paste escape sequences for HTML, CSS, JavaScript, Python, Java, C and URLs. It is a character viewer, a code point lookup and an invisible character detector in one page.
Why the same-looking string behaves differently
Three classes of bug account for most Unicode headaches, and all three are invisible until you look at the code points.
| Symptom | Usual cause | What to look for |
|---|---|---|
| Strings compare unequal | Decomposed accents | e + U+0301 instead of U+00E9 |
| Database or API rejects the value | Hidden format characters | U+200B, U+00A0, U+FEFF, U+00AD |
| Byte count exceeds character count | Multi-byte code points | Emoji, CJK, ZWJ sequences, surrogate pairs |
Code points, grapheme clusters and code units
These three counts agree only for plain ASCII. A code point is one Unicode scalar value. A grapheme cluster is what a reader calls a character — a family emoji built from three people and two zero-width joiners is five code points but one cluster. A UTF-16 code unit is what String.length returns in JavaScript, Java and C#, which is why "👍".length is 2: anything above U+FFFF is stored as a surrogate pair. Switching the segmentation mode re-splits the table so you can see each view.
Finding invisible characters and homoglyphs
Characters in the Cc, Cf and Zs categories render as nothing or as ambiguous whitespace. The inspector replaces them with visible badges such as ⟨ZWSP⟩ and ⟨NBSP⟩, reports their exact positions, and offers a one-click strip so you can clean text pasted from a word processor or PDF. A separate check flags confusables — the Cyrillic U+0430 that looks exactly like a Latin a, Greek ο, fullwidth forms, typographic quotes and dashes — and warns whenever a single string mixes scripts, the classic signature of a spoofed domain name.
NFC composes characters and is what you almost always want before storing or comparing text. NFD decomposes them. The NFK forms additionally fold compatibility variants, turning fi into fi and fullwidth letters into ASCII — useful for search indexes, destructive for round-tripping.
Escapes and byte encodings
Every row carries the escape you need in the language you are writing. The euro sign, for example, is U+20AC, three UTF-8 bytes E2 82 AC, one UTF-16 code unit 20AC, € in HTML, \20AC in CSS, € in JavaScript and Python and %E2%82%AC in a URL. Emoji outside the Basic Multilingual Plane show four UTF-8 bytes, a surrogate pair in UTF-16 and a \u{1F4A9} style escape in modern JavaScript.
Segmentation, lookup, normalization and export all run locally, so it is safe to paste tokens, customer records or unreleased copy while debugging an encoding problem.
Who uses a Unicode inspector
Developers chasing encoding bugs, security engineers auditing strings for spoofing, localisation teams checking which scripts a translation actually contains, editors cleaning imported copy, and anyone learning how UTF-8 really works. Results export as CSV, JSON or a plain-text report, and the share link carries your text and settings so a colleague opens exactly the same breakdown.