Unicode Inspector

See every character's code point, bytes and escapes, and spot hidden characters.

About this tool

Paste any text. The inspector counts visible characters (graphemes), code points, UTF-16 units and UTF-8 bytes, then lists every code point with its U+ number, Unicode category, a name for common invisible and typographic characters or its script, its UTF-8 and UTF-16 encodings, and its JavaScript and HTML escapes. Warnings flag invisible characters, bidirectional controls and mixed scripts, and a button removes the common invisible ones.

Why text length is complicated

What looks like one character can be several Unicode code points, and each code point can take several bytes. "Γ©" can be a single code point, U+00E9, or an "e" followed by a combining accent, U+0301, and the two look identical but compare as different strings. A thumbs-up with a skin tone, πŸ‘πŸ½, is one visible character made of two code points, U+1F44D and U+1F3FD. That is four UTF-16 units, which is what JavaScript's length counts, and eight UTF-8 bytes. Hidden characters cause real bugs and security problems. Zero-width spaces break searches and passwords, a no-break space stops code from parsing, and bidirectional override characters can make text display in a different order from how it is stored, a trick used to hide malicious code in review. Mixing alphabets is how look-alike phishing domains work: "pΠ°ypal" with a Cyrillic "Π°" looks right but is a different address. The inspector flags all three. Full Unicode character names are not included, to keep the page light. The character counter counts text for limits, the invisible text tool works with hidden characters on purpose and the HTML entities converter encodes for web pages. UTF-8 explained: how text is stored, and why it turns into é and Ò€ℒ explains the encoding.

Frequently asked questions

What is a Unicode code point?

The number Unicode assigns to a character, written U+ followed by hex, such as U+0041 for A or U+1F600 for πŸ˜€.

Why does JavaScript say my emoji has length 2?

JavaScript counts UTF-16 code units. Characters beyond U+FFFF, including most emoji, need two units, called a surrogate pair.

How do I find zero-width spaces in text?

Paste the text here. Invisible characters are highlighted and listed in the warnings, and the remove button strips the common ones.

Is my text saved?

No. Everything runs in your browser and nothing is stored or sent.