Unicode code points identify abstract characters by hexadecimal scalar value; a supplementary character uses one point, not two UTF-16 code units. Convert locally in your browser.
Live converterYour input stays in this browser. No text is uploaded for conversion.
→
The file stays in your browser.
Chain tools
Apply each text tool to the previous result.
01 / Guide
How it works
Unicode code points identify abstract characters by hexadecimal scalar value; a supplementary character uses one point, not two UTF-16 code units.
Good to know
Use U+ followed by one to six hexadecimal digits. Surrogate values and values above U+10FFFF are rejected rather than replaced.
02 / Example
Example
Your inputU+0043 U+0061 U+0066 U+00E9 U+0021
ResultCafé!
03 / Guide
Unicode code points to text — How it works
Worked example
Unicode code points identify abstract characters by hexadecimal scalar value; a supplementary character uses one point, not two UTF-16 code units. Convert locally in your browser. For example, entering "U+0043 U+0061 U+0066 U+00E9 U+0021" produces "Café!". Compare both sides character by character; the visible spelling can hide different bytes or combining marks. In this direction the encoded representation becomes readable text. Paste the complete sequence, including any padding or escape signs, and check the decoded characters against the source system. A syntactically valid encoded string can still contain bytes that are not valid UTF-8 text.
How the representation works
A Unicode code point is a scalar number assigned to a character, written here as U+ followed by hexadecimal digits. For example, U+0041 denotes A; a symbol above U+FFFF still has one code point although JavaScript represents it internally with two UTF-16 code units. Code points are not bytes and do not specify how a file is encoded. Combining marks have their own points, so one visible accented glyph may have one precomposed point or multiple points. This tool rejects UTF-16 surrogate numbers and values above U+10FFFF because they are not valid scalar values. The list form is valuable for investigating visually similar text and invisible marks. Unicode code points identify abstract characters by hexadecimal scalar value; a supplementary character uses one point, not two UTF-16 code units.
A text transformation has a direction. First identify whether your source is readable Unicode text, a list of bytes, code points or an already encoded string. Paste one short value whose meaning you know, inspect the result and only then process a larger input. Keep a copy of the source. An encoded sequence can be reversible while still revealing every original byte to anyone who knows the format; encoding alone is not a privacy measure. Processing runs in this browser, so the converter does not send your pasted content to a conversion server. The result still becomes sensitive if you copy it into a shared document, issue tracker or URL.
Limits and reliable use
Use U+ followed by one to six hexadecimal digits. Surrogate values and values above U+10FFFF are rejected rather than replaced. Use the exact alphabet, byte encoding and normalization form required by the receiving system. Similar looking formats are not automatically compatible. A decoded string can contain markup or control characters and must be treated as untrusted input by the next application. A valid conversion also does not prove that the data is authorized, safe or semantically correct. Try a round trip when the operation is intended to be reversible, and compare Unicode code points or UTF-8 bytes if two strings look equal but fail an exact comparison. For records that will be stored or signed, document the transformation as part of the data contract rather than relying on a visual preview.