Paste text and see every character laid out: its codepoint, official Unicode name, block, category, UTF-8 and UTF-16 bytes and HTML entity. Emoji and other grapheme clusters are grouped, so you see what the eye sees and what the bytes say.
Everything runs locally in your browser. Your data never leaves your device.
Input
About the Unicode Character Inspector
This tool takes any text apart, character by character. It splits the input into grapheme clusters, the units your eye reads as one character, and expands each cluster into the codepoints it is really made of. An emoji family stays one visual chip, and a click shows the man, woman, girl and the zero-width joiners gluing them together.
Every codepoint reports its official Unicode name, block, general category, UTF-8 bytes, UTF-16 code units and decimal value, plus ready-to-paste escape forms for JavaScript, CSS and HTML. Each value has its own copy button.
What you can do
Find out what character is hiding behind a strange glyph.
Look up the official Unicode name and block of any character.
See the codepoints inside an emoji ZWJ sequence or flag.
Get the UTF-8 bytes and UTF-16 code units of a character.
Copy the JavaScript, CSS or HTML escape for a codepoint.
Count characters, codepoints and UTF-8 bytes of a text.
Spot unpaired surrogates in broken text.
How to use the Unicode Character Inspector
1Paste or type your text, or load the example line.
2Read the summary for character, codepoint, byte and block counts.
3Click a character chip. Invisible characters show a placeholder, multi-codepoint clusters carry a small count.
4In the inspector, pick a codepoint of the cluster and copy any value: name, block, category, encodings or escapes.
Characters, codepoints and bytes are different counts
What looks like one character on screen is often several codepoints. A family emoji can be seven, a flag is two regional indicators, and an accented letter may be a base letter plus a combining mark. Each codepoint in turn becomes one to four UTF-8 bytes, and astral codepoints such as emoji take two UTF-16 code units, which is why "👨".length is 2 in JavaScript. The summary shows all four counts side by side so you can see exactly where a length check and what you see on screen disagree.
Text copied out of logs or binary files sometimes contains unpaired surrogates, UTF-16 halves that are not valid characters on their own. The inspector shows them in their own color with their surrogate label and points out that encoders replace each one with U+FFFD. Very long inputs are handled too: the summary always covers the whole text, and the character grid shows the first 500 characters so the page stays responsive.
Decode Base64 to text or encode text to Base64. Paste into the top box, read the result below, and flip the direction with one click. Handles Unicode correctly, reads URL-safe Base64, and shows binary payloads as a hex dump you can download.
Format code in JavaScript, TypeScript, JSON, JSON5, HTML, Vue, CSS, SCSS, LESS, Markdown, YAML, GraphQL, XML and SQL. Pick tabs or spaces, set the indent width, and format the input in place with one click.
Escape text into HTML entities or decode entities back to plain text. Choose named or numeric entities, escape only the unsafe characters or everything outside ASCII, and read the result live.
Reveal the characters you can't see in a text: zero-width spaces, non-breaking spaces, bidi marks, control characters and CRLF versus LF line endings. Inspect every occurrence and clean them out with a click.