DevTools Hub

Search tools

Search for a developer tool

Encoding

Unicode Converter

Inspect each character's code point, category, script, and plane, or build text from U+XXXX code points.

Part of the Encoding Toolkit
Characters
CharCode pointUTF-8UTF-16CategoryScriptPlane
HU+0048 (72)480048Uppercase LetterLatinBMP
iU+0069 (105)690069Lowercase LetterLatinBMP
U+0020 (32)200020Space SeparatorCommonBMP
éU+00E9 (233)c3 a900e9Lowercase LetterLatinBMP
U+0020 (32)200020Space SeparatorCommonBMP
U+6771 (26481)e6 9d b16771Other LetterHanBMP
U+0020 (32)200020Space SeparatorCommonBMP
😀U+1F600 (128512)f0 9f 98 80d83d de00Other SymbolCommonEmojiSMP
Normalization forms
NFCHi é 東 😀8 chars · same as input
NFDHi é 東 😀9 chars
NFKCHi é 東 😀8 chars · same as input
NFKDHi é 東 😀9 chars

What this shows, per character

Paste text in Inspect mode and every character — by Unicode code point, not by UTF-16 code unit, so an emoji is one row, not two — gets broken down: its U+XXXX code point, raw UTF-8 and UTF-16 bytes, general category (letter, number, punctuation, symbol, mark...), script (Latin, Cyrillic, Han...), and which Unicode plane it falls in. Category and script come from the browser's own built-in Unicode database via JavaScript's native \p{...} regex property escapes — nothing is bundled or looked up over the network.

Switch to Build mode to go the other way — paste a list of U+XXXX code points and get the text they spell out.

Normalization forms

The same visible character can be represented by more than one sequence of code points — é can be one code point (U+00E9) or two (e + a combining acute accent, U+0065 U+0301). They look identical and usually behave identically, but they are not the same string — a strict equality check or a database lookup can fail between two values that render the same way. The four normalization forms resolve this by picking one canonical representation:

When a form's character count differs from the input, that's a real signal — it means the input wasn't already in that canonical form.

FAQ

Why does Script say "Unknown" for some characters?

Only a common subset of scripts is checked (Latin, Greek, Cyrillic, Han, Arabic, and similar) rather than all ~160+ defined in Unicode — anything outside that list falls back to "Unknown" rather than guessing.

Why isn't there a Unicode character name (like "LATIN CAPITAL LETTER A")?

Official character names come from the full Unicode Character Database, which is a large dataset this tool doesn't bundle — category, script, and plane are all derivable from the browser's built-in Unicode support instead, with no download required.

Try it yourself

For hex byte representations in JavaScript, JSON, HTML/XML, or SQL escape syntax instead of code-point analysis, see Hex Encode and Hex Decode.

Related tools