Unicode Inspector
Inspect every character: code point, name, UTF-8 bytes, category.
About the Unicode Inspector
Unicode Inspector breaks any text down so every single character can be examined on its own. Type into the single-line Text field and the Character breakdown table repopulates live, with one row per code point numbered from zero. For each character the table lists the printable Char, its Code point in hexadecimal form, a Name, a Category badge, and the exact byte representations used by UTF-8 and UTF-16. ASCII characters receive their full official Unicode names such as LATIN CAPITAL LETTER A, while everything else is labelled with its code point, because the complete Unicode name database is not bundled client-side. Control characters like tabs and line feeds are rendered as escapes such as and , and spaces appear as visible markers. The stat grid totals Code points, UTF-8 bytes, UTF-16 units, and Letters, with a second row counting every category. For performance, only the first 512 characters are rendered in the table, and a note appears when longer text is truncated. The bundled sample, Hello, 世界! 🌍, demonstrates ASCII, CJK, and an emoji in one go.
Examples
Hello, 世界! 🌍
11 code points - 20 UTF-8 bytes - 14 UTF-16 units - 7 Letters H U+0048 LATIN CAPITAL LETTER H Letter 48 0048 世 U+4E16 Code point U+4E16 Letter E4 B8 96 4E16 🌍 U+1F30D Code point U+1F30D Symbol F0 9F 8C 8D D83C DF0D
a b
4 code points - 4 UTF-8 bytes - 4 UTF-16 units - 2 Letters - 2 Control a U+0061 LATIN SMALL LETTER A Letter 61 0061 U+0009 CHARACTER TABULATION Control 09 0009 b U+0062 LATIN SMALL LETTER B Letter 62 0062 U+000A LINE FEED Control 0A 000A
café
4 code points - 5 UTF-8 bytes - 4 UTF-16 units - 4 Letters c U+0063 LATIN SMALL LETTER C Letter 63 0063 é U+00E9 Code point U+00E9 Letter C3 A9 00E9
How to use
- 1
Type or paste text into the single-line Text field; the default mixed-script sample loads automatically.
- 2
Scan the stat tiles for Code points, UTF-8 bytes, UTF-16 units, and the Letters count.
- 3
Review the Character breakdown table for each character's Code point, Name, and Category badge.
- 4
Compare the UTF-8 bytes and UTF-16 units columns to understand how each encoding represents the character.
- 5
Watch for the 512-character truncation note and shorten the input if only part of the table renders.
Common use cases
- Checking whether pasted content hides tabs or line feeds before cleanup.
- Confirming that an emoji in an interface is the code point you expect.
- Diagnosing mojibake by comparing UTF-8 byte sequences of two visually identical strings.
- Auditing a string for control characters that break JSON or CSV exports.
- Teaching how UTF-8 and UTF-16 encode the same character differently.
- Verifying the byte size of a user-generated field before setting database limits.
Best practices
- Inspect scraped or imported text for hidden Control characters before it lands in production strings.
- Verify emoji and CJK through the table, since invisible encoding issues are the hardest to reproduce later.
- Check the UTF-8 bytes column when configuring databases, because storage limits depend on bytes, not characters.
- Use the UTF-16 units column to reason about JavaScript string length, which counts code units rather than characters.
- Keep inputs under 512 code points when you need the complete table, watching for the truncation note.
Tips
- Paste a snippet with mixed scripts to quickly compare how many bytes each encoding needs.
- Hunt for invisible Control characters in scraped text by scanning the Category column for the red badge.
- Verify a copy-pasted emoji really is the character you expect by reading its U+ code point.
- Compare UTF-16 units of two samples when debugging surrogate-pair issues in JavaScript string handling.
Frequently asked questions
Explore more text tools
Browse the full collection of text tools on the hub, or jump back to all categories.