Skip to main content
NyankoTools

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

Enter text or code points to see the breakdown here.

How to use

  1. Pick a direction: "Text → Code points" or "Code points → Text".
  2. Enter the characters to inspect, or code points such as U+XXXX. Results update as you type.
  3. 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

↑↓ Select Enter Open Esc Close