PocketPlay
中文

Unicode Lookup

Inspect any text character by character: code point, name, block, UTF-8 and UTF-16 bytes, HTML entity, JavaScript and URL escapes.

🔒 Runs in your browser — files never leave your deviceFree · No sign-up
0Characters
0UTF-16 units
0UTF-8 bytes
0Distinct
Char Code point Name UTF-8 UTF-16 HTML JS URL

Nothing to inspect yet — type something above.

Look up a code point

Convert between escaped forms

How to use the Unicode lookup

  1. Paste the text you are debugging into the first box — every character is broken out into its own row with its code point, name and block.
  2. Read across the row for the exact bytes and escapes you need: UTF-8, UTF-16, an HTML entity, a JavaScript \u escape or a percent-encoded URL form.
  3. Going the other way? Paste \u4f60, 你 or %E4%BD%A0 into the converter and every other form — including the readable text — is filled in for you.

FAQ

Why does one emoji count as two characters in JavaScript?

JavaScript strings are UTF-16. Any code point above U+FFFF — most emoji, and rarer CJK ideographs — is stored as a surrogate pair, so "🙂".length is 2. Iterate with Array.from() or a for…of loop, as this tool does, and you get one element per real character.

My string looks identical but comparisons fail. Why?

Almost always invisible or duplicated code points: a zero-width space, a non-breaking space instead of a normal one, a byte order mark at the start, or an accent stored as a base letter plus a combining mark rather than a single precomposed character. Paste both strings here and the rows will differ immediately.

Do you ship the whole Unicode database?

No — that would be several megabytes. The page carries names for ASCII, Latin-1, common punctuation, arrows, maths, currency and popular emoji, computes the algorithmic names for CJK ideographs, and shows the official block name for everything else.