Unicode Character Inspector
Summary
Character Breakdown (7 characters)
What This Tool Does
Paste any text to see every character's Unicode code point, name, category, UTF-8 bytes, UTF-16 units, HTML entity, and JavaScript escape — all computed in your browser. The inspector iterates by code point, so an emoji beyond U+FFFF appears as one character with its surrogate pair shown, which is why JavaScript's .length reports it as two.
Last updated:
This tool is provided as-is for convenience. Output should be verified before use in any production or critical context.
Agent Invocation
Best Path For Builders
Browser workflow
Runs instantly in the browser with private local processing and copy/export-ready output.
Browser Workflow
This tool is optimized for instant in-browser execution with local data handling. Run it here and copy/export the output directly.
/unicode-inspector/
For automation planning, fetch the canonical contract at /api/tool/unicode-inspector.json.
How to Use Unicode Character Inspector
- 1
Paste or type your text
Enter any text in the input box — plain ASCII, accented letters, emoji, CJK characters, RTL scripts, or a mix. You can also click a sample button to load a ready-made example like 'Emoji mix' or 'Zero-width'.
- 2
Read the Summary panel
The Summary row shows total character count, unique code points, total UTF-8 byte count, non-ASCII character count, and how many characters fall inside vs. outside the Basic Multilingual Plane (BMP).
- 3
Inspect individual character cards
Each character gets its own card showing: the glyph, its Unicode code point (e.g. U+1F30D), official name, category badge (Letter, Emoji, Control…), UTF-8 bytes, UTF-16 code units, HTML entity, and JavaScript escape sequence.
- 4
Copy any encoding
Click the small 'copy' button next to any encoding value — UTF-8 bytes, UTF-16 units, HTML entity, or JS escape — to copy that representation directly to your clipboard. Use this to paste exact escape sequences into your source code.
Frequently Asked Questions
What is Unicode Character Inspector?
How do I use Unicode Character Inspector?
Is Unicode Character Inspector free?
Does Unicode Character Inspector send my text to a server?
Why do emoji show two UTF-16 units?
How do I find the Unicode code point and UTF-8 bytes of a character?
Paste or type the text. Each character renders as a card showing its code point (U+1F600 style), official or descriptive name, category badge, and four encodings side by side: UTF-8 bytes, UTF-16 units, HTML entity, and JavaScript escape — each with a copy button. Everything is decoded in the page as you type.
Step by step
- Paste text into the input — or load a sample: emoji, accented Latin, CJK, right-to-left Arabic, math symbols, or a string with a hidden zero-width character.
- Read the summary bar: total characters, unique code points, UTF-8 byte count, non-ASCII count, and how many characters sit in the Basic Multilingual Plane versus the supplementary planes.
- Inspect each card. Control characters display as red
\xescapes instead of an invisible glyph. - Copy the encoding you need — the UTF-8 byte sequence for a protocol bug, the
\uescape for a source file, the entity for HTML.
How code points map to encodings
| Code point range | UTF-8 | UTF-16 | JS escape |
|---|---|---|---|
| U+0000 – U+007F | 1 byte | 1 unit | literal or \uXXXX |
| U+0080 – U+07FF | 2 bytes | 1 unit | \uXXXX |
| U+0800 – U+FFFF | 3 bytes | 1 unit | \uXXXX |
| U+10000 – U+10FFFF | 4 bytes | surrogate pair (2 units) | \u{XXXXX} |
Encoding widths follow the UTF-8 and UTF-16 specifications. The category badge is this tool's simplified grouping (Letter, Number, Punctuation, Symbol, Separator, Control, Emoji, Other), not the full Unicode General Category property.
Why does one emoji count as two characters in JavaScript?
JavaScript's .length counts UTF-16 code units, and every code point above U+FFFF is stored as a surrogate pair of two units. The inspector iterates by code point instead, so 🚀 (U+1F680) shows as one character — with both UTF-16 units listed — while a naive .length check reports 2. The BMP versus supplementary split in the summary tells you how many characters in your string behave this way.
How do I find invisible or zero-width characters in text?
Paste the suspect string and scan the cards: zero-width space (U+200B), zero-width joiner and non-joiner, directional marks, and the byte-order mark (U+FEFF) all surface with their names even though they render as nothing. This catches the classic bugs — a copied identifier that fails equality checks, a JSON key with a hidden BOM, or text that breaks a tokenizer.
Does the text I paste leave the browser?
No. Decoding runs entirely in the page; nothing is transmitted or stored. That matters when the string you are debugging is a user's name, an API token, or content from a production database — close the tab and it is gone.