UTILS.
100% in-browser
🔤

Unicode Code Point Converter

Inspect text and convert each character to its Unicode code point, UTF-8/UTF-16 bytes, HTML entity and escape — or rebuild text from code points.

Enter text or code points above.

About this tool

The Unicode Code Point Converter breaks text down character by character and shows every common representation of each one, and it also works in reverse to rebuild a string from code points you paste in. In forward mode it iterates by code point (not by UTF-16 unit), so astral characters and emoji made of surrogate pairs are handled correctly as single characters.

For each character it reports the U+ hex code point, the decimal code point, the UTF-8 byte sequence in hex (via the browser's TextEncoder), the UTF-16 code units in hex, the numeric HTML entity (&#nnnn;), and the JavaScript/JSON escape (\uXXXX, or \u{...} for code points above U+FFFF). This is ideal for debugging encoding issues, spotting invisible or look-alike characters, or building escape sequences for source code.

In reverse mode you paste code points in almost any notation — U+1F600, plain decimal, \uXXXX, \u{1F600}, 😀, 😀 or 0x-prefixed hex, separated by spaces or commas — and the tool validates each (rejecting values above U+10FFFF and lone surrogates) and reconstructs the string with String.fromCodePoint. All processing is local to your browser, so private text never leaves the page.

Frequently asked questions

Does it handle emoji and astral characters?
Yes. Forward mode iterates by Unicode code point, so an emoji like 😀 (U+1F600), which is stored as a UTF-16 surrogate pair, is treated as one character and its escape is emitted as \u{1F600}.
What formats does reverse mode accept?
U+XXXX hex, plain decimal, \uXXXX and \u{XXXXX} JavaScript escapes, HTML entities &#nnnn; and &#xHHHH;, and 0x-prefixed hex. Separate multiple code points with spaces or commas and the string is rebuilt in order.
What is the difference between UTF-8 and UTF-16 columns?
UTF-8 shows the 1–4 bytes used to store the character in the UTF-8 encoding, while UTF-16 shows the 16-bit code units (one, or two for a surrogate pair). Both are given as hex for the same character.
Is invalid input rejected?
Yes. Reverse mode flags anything that is not a valid Unicode scalar value — code points above U+10FFFF or in the surrogate range U+D800–U+DFFF — so you never build a malformed string.

More tools