Unicode Character Inspector and Code Point Lookup
Paste any text to see each code point with its U+XXXX value, UTF-8 and UTF-16 bytes, general category, script and block. Surrogate pairs, combining marks and ZWJ emoji sequences are split into their individual code points. You can also go the other way: enter code points like U+3042 to get the characters. To convert text into escape sequences, use Unicode Escape / Unescape; to browse symbols, try the Special Characters & Emoji List.
🔒 Runs in your browser · Your data is never sent to a server
Character details
- Code points
- 0
- Visible characters
- 0
- UTF-16 code units
- 0
- UTF-8 bytes
- 0
Enter text or code points to see the breakdown here.
| Char | Code point | UTF-8 | UTF-16 | Category | Script | Block | Name |
|---|
How to use
- Pick a direction: "Text → Code points" or "Code points → Text".
- Enter the characters to inspect, or code points such as U+XXXX. Results update as you type.
- Read the bytes, category and script in the table, and press "Copy code points" if you need them.
Notes
- No large character-name database is bundled, so names appear only for a small set: ASCII, control characters, invisible characters such as ZWJ, and regional indicators. Category and script come from your browser, so they depend on its Unicode version.
- Only major blocks are included. Characters outside them show "-" as the block.
- "Visible characters" is the grapheme count from the browser (Intl.Segmenter). Where it is unsupported, it equals the code point count.
- Code point input accepts U+3042, 0x3042, \u{3042}, あ and 3042. Values above U+10FFFF are rejected.
- A lone surrogate (U+D800 to U+DFFF) cannot be encoded in valid UTF-8; the table shows U+FFFD (EF BF BD), which is what a real encoder outputs.
Glossary
Code point
The number Unicode assigns to a character. It is written as "U+" plus hex digits, such as U+3042, and ranges from U+0000 to U+10FFFF.
UTF-8 / UTF-16
Encodings that turn code points into bytes. UTF-8 uses 1 to 4 bytes per character; UTF-16 uses 2 bytes, or 4 as a surrogate pair.
General category
The classification Unicode gives each character, written as a two-letter code like Lu (uppercase letter) or Nd (decimal digit). It is what regex \p{Lu} matches against.
ZWJ (zero width joiner)
The invisible character U+200D. It glues several emoji together so they render as one, such as 👨👩👧.
FAQ
Why does one emoji show up as several code points?
Family emoji (👨👩👧) and skin-toned emoji are built from several emoji glued together with a ZWJ (U+200D) or a skin-tone modifier. This tool lists each code point separately, while "Visible characters" counts the whole sequence as one.
How do the UTF-8 and UTF-16 bytes differ?
The same code point is laid out differently in each encoding. "あ" (U+3042) is three bytes in UTF-8 (E3 81 82) but a single 16-bit unit in UTF-16 (3042). Characters above U+FFFF become a two-unit surrogate pair in UTF-16.
Does it show official character names like HIRAGANA LETTER A?
No large name database is loaded, so names are shown only for a small set such as ASCII, control characters, invisible characters like ZWJ, and regional indicators. Everything else still gets its category, script and block.
Which code point formats can I enter?
In "Code points → Text" mode you can use U+3042, 0x3042, \u{3042}, あ or plain 3042, separated by spaces, commas or new lines. Values above U+10FFFF are rejected.
Share this page
