Advertisement

Free Online Unicode Inspector

Inspect characters, code points, UTF-8 bytes, and names.

0 code points

Each row describes one Unicode code point. Emoji and other characters outside the Basic Multilingual Plane are shown as a single character but use a surrogate pair in UTF-16.

Code points
0
Characters inspected
UTF-8 bytes
0
Encoded byte length
UTF-16 units
0
JavaScript string length
Grapheme clusters
0
What a reader sees as one character

Character table

Char Code point Decimal HTML entity UTF-8 bytes UTF-16 units Category Name
Paste text above to inspect each character.

0 code points

Advertisement

About the Unicode Inspector

Text looks simple on screen, but underneath it is a sequence of code points, each with a numeric identity, an encoding, and often a name. This inspector breaks pasted text into individual characters and shows the code point in hexadecimal and decimal, the HTML entity, the UTF-8 byte sequence, the UTF-16 code units, and the general Unicode category. Use it to debug encoding problems, verify that a character is the one you intended, or learn how emoji and accented letters are represented.

Code points versus bytes versus code units

A code point is an abstract Unicode number, written as U+0041 for an uppercase A or U+1F44B for a waving hand. UTF-8 encodes that number as one to four bytes for storage and network transport. UTF-16 encodes it as one or two 16-bit code units, which is why JavaScript string length counts some emoji as two characters. The inspector shows all three views side by side so the relationship is visible rather than theoretical.

Surrogate pairs and emoji

Characters above U+FFFF do not fit in a single UTF-16 unit. They are represented by a high surrogate and a low surrogate, each in the range 0xD800–0xDFFF. The inspector reads the text by code point rather than by UTF-16 unit, so an emoji such as 👋 appears once, with its full code point U+1F44B, while the UTF-16 column shows the two units D83D and DC4B. Combining marks, variation selectors, and zero-width joiners are listed separately because they are separate code points even when they visually attach to a neighbouring character.

HTML entities and safe output

The HTML entity column provides a representation that can be embedded in markup without ambiguity. Common characters use named entities such as & and <, while everything else uses a numeric hexadecimal entity like 👋. The table itself builds cells with text content rather than raw HTML, so pasting markup, script tags, or unusual control characters cannot execute anything in the page.

Categories and names

Unicode groups characters into broad categories: letters, numbers, punctuation, symbols, marks, separators, and control or other characters. The category column uses those groups. Names are shown for common Latin letters, digits, punctuation, currency signs, mathematical symbols, Greek letters, and several popular emoji. Other code points show a dash because the full Unicode name database is too large to embed in a browser tool; the category and code point are still enough to identify them.

Frequently asked questions

Why does the character count differ from the string length?

The code-point count treats an emoji as one character, while JavaScript string length counts its two UTF-16 units. Compare the code points card with the UTF-16 units card to see the difference.

What is a grapheme cluster?

A grapheme cluster is what a reader perceives as one character. It can contain multiple code points, such as a letter plus an accent, or an emoji plus a skin-tone modifier. The grapheme count uses the browser's segmenter when available.

Why do some characters show no name?

The browser does not expose the complete Unicode name database. Common characters are named explicitly, and the rest show a dash. The code point and category are always available and are usually enough to look up the character.

Sponsored
Find a bug? Report now