DevKit
Reference

Unicode Character Lookup

Inspect Unicode code points, HTML entities, and JS escapes for any character or emoji.

Last updated: August 2026

Share:

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 AC

Code 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.