Unicode Character Lookup
Inspect Unicode code points, HTML entities, and JS escapes for any character or emoji.
Last updated: August 2026
Was this tool helpful?
Inspecting a character's identity
Every character has a Unicode code point, a number that uniquely identifies it independent of font or encoding. A lookup shows that code point, the character name, and the forms you need to embed it: the HTML entity, the JavaScript escape, and often the UTF-8 bytes. It is how you answer "what exactly is this character?"
Code point vs the forms around it
The code point for the euro sign is U+20AC. In HTML you can write it as € or the named entity €. In a JavaScript string it is \\u20AC. These are different spellings of the same character, each needed in a different context.
Example
Character: €
Code point: U+20AC (8364)
HTML: € or €
JS escape: \u20AC
UTF-8: E2 82 ACCode points, code units, and graphemes
This is where confusion lives. A code point above U+FFFF, like many emoji, needs a surrogate pair in JavaScript, so "😀".length is 2, not 1. And what looks like one character on screen, a grapheme, can be several code points: a base letter plus combining accents, or an emoji with a skin-tone modifier. Normalization forms (NFC, NFD) let you convert between a precomposed accented letter and its decomposed base-plus-mark version, which matters for reliable string comparison.
FAQ
Why is my string length wrong for emoji? JavaScript counts UTF-16 code units; characters beyond the basic plane use two, inflating the length. Converting the bytes is a job for the text to binary tool.
Two strings look identical but are not equal, why? One uses a precomposed character and the other a base plus combining mark. Normalize both to NFC before comparing.
What is the difference between € and €? The first is a numeric reference by code point, the second a named entity. Both produce the same character; numeric works for any code point.