Unicode converter

Find the code point of any character, or turn U+ codes and escapes back into text.

Tier 0 · browser · unlimited
7 characters
Result
U+004F U+006C U+00E1 U+0020 U+20AC U+1F600
OU+004F · UTF-8 4F · UTF-16 004F
lU+006C · UTF-8 6C · UTF-16 006C
áU+00E1 · UTF-8 C3 A1 · UTF-16 00E1
U+0020U+0020 · UTF-8 20 · UTF-16 0020
€U+20AC · UTF-8 E2 82 AC · UTF-16 20AC
😀U+1F600 · UTF-8 F0 9F 98 80 · UTF-16 D83D DE00

Code points, bytes and escapes

Unicode gives every character a number called a code point, written U+ and at least four hex digits: A is U+0041, é U+00E9, € U+20AC and 😀 U+1F600. That number is the same everywhere. How it is stored differs: UTF-8 uses one to four bytes, UTF-16 (used inside JavaScript, Java and Windows) uses one or two 16-bit units, and programming languages and HTML each have an escape syntax.

This converter translates between them. Choose U+ for documentation, \u escapes for JavaScript, JSON and Java strings, HTML for &#x…; references and decimal for databases and some APIs. Paste any of those formats to decode.

Worked example

😀 is U+1F600. In UTF-8 it is four bytes, F0 9F 98 80; in UTF-16 two units, D83D DE00, which is why "😀".length is 2 in JavaScript. As a modern JavaScript escape it is \u{1F600}, as HTML 😀, and as a decimal number 128512.

How this works

The page walks through your text by code point, so an emoji counts as one character even though JavaScript stores it as two UTF-16 units. Each code point is written in the notation you choose, and the table lists the character with its code point, UTF-8 bytes and UTF-16 units. Decoding finds U+ codes, \u and \u{…} escapes, HTML numeric references, 0x values and plain decimal numbers in the input, joins surrogate pairs, and rejects values outside Unicode's range. Everything runs in this tab.

Frequently asked

What is a code point?

The number Unicode assigns to a character, such as U+0041 for A. It does not depend on how the text is stored.

Why does JavaScript say an emoji has length 2?

JavaScript strings count UTF-16 units, and characters above U+FFFF need two of them (a surrogate pair).

What is the difference between \\u00E9 and \\u{1F600}?

\uXXXX holds exactly four hex digits, enough for U+0000–U+FFFF. \u{…} accepts any code point and is needed above U+FFFF.

Can I see character names?

Not here. The full Unicode name list is large; the page shows code points, bytes and escapes.

Sources

Reviewed Oct 17, 2026 · test vectors fixtures/dev/unicode-converter/