Paste text to see every character: code point (U+XXXX), Unicode name, general category, block, script, UTF-8 bytes and UTF-16 code units. Invisible characters such as zero-width spaces, control characters and combining marks are made visible. Look up a character by code point (U+1F600, 0x1F600) and copy its HTML entity or JavaScript, Python and CSS escape. Uses Unicode 17.0 data in your browser.
A tool that shows what a piece of text is really made of. Every character is listed with its code point, official Unicode name and properties, so you can find hidden characters (zero-width spaces, non-breaking spaces, BOM, direction marks), tell look-alike characters apart (Latin A and Cyrillic А, the hyphen and the minus sign), or get the escape sequence you need in code.
U+1F600 U+0041.é written as e + accent or a family emoji, the group header shows the character and each code point is listed under it.| Column | Example | Meaning |
|---|---|---|
| Char | 😀 | The character. Invisible ones are shown as a label (ZWSP, NBSP, VS16), control characters as control pictures (␊), and combining marks on a dotted circle (◌́) |
| Code point | U+1F600 | The Unicode number in hexadecimal |
| Name | GRINNING FACE | The official character name. Characters without a name show a label such as <control-0000> or <private-use-E000> |
| Category | So (Other Symbol) | General Category, such as letter, mark, number, punctuation, symbol, separator or control |
| Block / Script | Emoticons / Common | The block the code point belongs to, and the writing system (Latin, Han, Hiragana, …) |
| UTF-8 / UTF-16 | F0 9F 98 80 / D83D DE00 | The bytes in UTF-8 and the 16-bit code units in UTF-16 (JavaScript strings use UTF-16) |
The details add: HTML numeric references (😀 and 😀) and named references (&, ©) where HTML defines one, JavaScript (\u{1F600} and 😀), Python (\U0001f600 and \N{GRINNING FACE}), CSS (\1F600) and URL encoding (%F0%9F%98%80).
In Code points mode you can mix these notations, separated by spaces or commas: U+1F600, 1F600, 0x1F600, 😀, 😀, \u{1F600}, 😀 (a surrogate pair is joined into one code point) and \U0001F600.
To stay fast, only the first 2,000 code points of long text are listed. The note above the table tells you how many there are in total.
Paste the text. Hidden characters get their own row with a label such as ZWSP (U+200B), ZWJ (U+200D), NBSP (U+00A0), BOM/ZWNBSP (U+FEFF) or LRM (U+200E), so you can see where they are.
Some characters are built from a base character and combining marks, or from several emoji joined with a zero-width joiner (U+200D). Flags are two regional indicator letters. They are shown as one group because they are displayed as one character.
Control characters, private-use characters, surrogates and unassigned code points have no name in Unicode. For control characters the tool shows the name alias (for example NULL, LINE FEED) instead.
Unicode 17.0.0. Newer characters may show as unassigned, and your font may not have a glyph for every character even when the name is known.
No. The Unicode data is downloaded with the tool and everything runs in your browser.