onlinetools.dev

Unicode Character Inspector

See code points, UTF-8/UTF-16 bytes and escapes for every character

Runs locally
loading…
About this tool

Paste any text and see each character dissected: its code point (U+XXXX), UTF-8 bytes, UTF-16 units, JavaScript escape sequence, HTML entity and general category β€” plus totals for code points, UTF-16 units, UTF-8 bytes and user-perceived characters (grapheme clusters).

This is the tool for "why is this string weird?" moments: invisible characters (zero-width spaces, BOMs, directional marks) show up as visible rows; look-alike characters (Cyrillic Π° vs Latin a) reveal different code points; and an emoji that "is one character" turns out to be seven code points joined by zero-width joiners.

The four different length totals answer the perennial question of why JavaScript's .length, a database byte limit, and what the user sees all disagree about how long a string is.

Frequently asked questions

Why does "πŸŽ‰".length === 2 in JavaScript?
JavaScript strings count UTF-16 code units. Characters beyond U+FFFF β€” including most emoji β€” need a surrogate pair, two units. The inspector shows both units and the real code point, and the summary counts them separately.
What is a grapheme cluster?
What a reader perceives as one character. Γ© can be two code points (e + combining accent), and family emoji can be seven or more joined by zero-width joiners. The grapheme count uses the browser's Intl.Segmenter β€” the closest thing to "characters as users see them".
How do I find invisible characters in a string?
Paste it here β€” every code point gets a row, including zero-width spaces (U+200B), no-break spaces (U+00A0), BOMs (U+FEFF) and directional marks, each labeled by category. These are the classic culprits behind "identical" strings that fail equality checks.
What do the UTF-8 byte sequences tell me?
Exactly what will be stored or transmitted: ASCII is one byte, most Latin extensions two, CJK three, emoji four. If a system truncates mid-sequence you get replacement characters (οΏ½) β€” the byte view shows where such cuts would land.
Related tools