Unicode Character Lookup
Paste a character or type a code point like U+2713 to see its name, block, category and every encoding, or search about 5,800 common symbols, arrows and emoji by name. Everything runs offline in your browser.
Find characters by name or keyword
Name search covers about 5,800 commonly used characters (Latin, Greek, Cyrillic, punctuation, currency, arrows, math, technical, box drawing, shapes, dingbats and emoji). The lookup above works for any of the 1.1 million code points, and shows block, category and encodings even when a name is not in the offline list.
How to use the Unicode Character Lookup
- Paste a character or type a code point (U+00E9, 0xE9, 233 or é) into the lookup box and press Look up.
- Read the card: name, code point, block, category, script and plane.
- Copy what you need: the character itself, UTF-8 bytes, the HTML entity or the escape for your programming language.
- Search by name (heart, arrow, degree, check mark) or pick a category chip to browse symbols.
- Click any result to open it in the card. Paste a whole string to inspect each of its code points, for example to find hidden zero-width spaces.
Unicode notation and escapes at a glance
The same character can be written many ways depending on where it goes. Here is the check mark ✓ (U+2713) and the grinning face 😀 (U+1F600), which lies outside the Basic Multilingual Plane and therefore needs a surrogate pair in UTF-16 based languages.
| Where | ✓ U+2713 | 😀 U+1F600 |
|---|---|---|
| UTF-8 bytes | E2 9C 93 | F0 9F 98 80 |
| UTF-16 | 2713 | D83D DE00 |
| HTML | ✓ or ✓ | 😀 |
CSS content | "\2713" | "\1F600" |
| JavaScript / JSON | ✓ | \u{1F600} or 😀 |
| Python | ✓ | \U0001F600 |
| URL | %E2%9C%93 | %F0%9F%98%80 |
How UTF-8 stores a code point
UTF-8 uses 1 to 4 bytes. The number of bytes depends only on the size of the code point, which is why plain English text stays the same size as ASCII while emoji take four bytes each.
| Code point range | Bytes | Bit pattern | Examples |
|---|---|---|---|
| U+0000 – U+007F | 1 | 0xxxxxxx | A, 7, ? |
| U+0080 – U+07FF | 2 | 110xxxxx 10xxxxxx | é, ß, Ω, Ж, א |
| U+0800 – U+FFFF | 3 | 1110xxxx 10xxxxxx 10xxxxxx | €, ✓, →, 中, あ |
| U+10000 – U+10FFFF | 4 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx | 😀, 𝄞, 𝔸 |
The range U+D800–U+DFFF is reserved for UTF-16 surrogates and is never encoded on its own in valid UTF-8, which is why the lookup marks those code points as not encodable.
Tracking down invisible and lookalike characters
Paste a suspicious string into the lookup box to see every code point it contains. Common troublemakers are the no-break space (U+00A0), zero width space (U+200B), zero width joiner (U+200D), the byte order mark (U+FEFF) left at the start of files, soft hyphens (U+00AD), and curly quotes (U+2018, U+2019, U+201C, U+201D) pasted from word processors into code. Lookalikes such as the Cyrillic а (U+0430) versus the Latin a (U+0061) show up instantly because their names and scripts differ. To turn whole strings into entities, use the HTML entity encoder; to repair text that was decoded with the wrong encoding, try the text encoding converter.
Frequently asked questions
How do I find the Unicode code point of a character?
Paste the character into the lookup box. The card shows its code point in U+ notation (for example U+00E9 for é), its decimal value, and how it is stored in UTF-8, UTF-16 and UTF-32. If you paste several characters, each code point appears as a chip you can click.
How do I type a Unicode character from its code?
Copy it with the Copy character button. In code, use an escape: \u00E9 in JavaScript, JSON, Java, C# and Python, \u{1F600} in modern JavaScript, Rust, Swift, Ruby and PHP, \U0001F600 in Python, C++ and Go, \E9 in CSS content, and é in HTML. On Windows you can also type Alt+X after the hex code in Word, and on Linux Ctrl+Shift+U followed by the hex code in many apps.
Why can't the name search find every character?
The full Unicode database is several megabytes, so this page embeds names for about 5,800 frequently used characters. The lookup still works for every code point: it computes names for Hangul syllables and CJK ideographs and always shows the exact block, category, script and encodings, which come from your browser's built-in Unicode support.
What is the difference between a code point and UTF-8?
A code point is the number Unicode assigns to a character, such as U+20AC for €. UTF-8 is one way of storing that number as bytes: € becomes the three bytes E2 82 AC. UTF-16 stores it as one 16-bit unit (20AC), and characters above U+FFFF, such as most emoji, need two units called a surrogate pair.
Why do some emoji show as two code points?
Many emoji are sequences: a base character plus a variation selector (U+FE0F), skin tone modifiers, or several emoji joined with a zero width joiner (U+200D), as in family and profession emoji. Paste the emoji into the lookup box to see every code point it contains.
What does general category mean?
Every code point has a general category such as Lu (uppercase letter), Nd (decimal digit), Sm (math symbol), Zs (space separator) or Cf (format character). Regular expressions can match them with \p{Lu} and similar, and they are a quick way to tell a real letter from a lookalike symbol.