Unicode Code Points to Text

Convert Unicode code-point notation, numeric references, and escape sequences into text.

Every parsed value is validated as a Unicode scalar value. Supplementary characters such as emoji are converted correctly instead of being truncated to UTF-16 code units.

Your input is processed in this browser and is not submitted to UnicodeNow.

Processed locally in your browser

This tool converts Unicode code-point notation → strict parsing → Unicode scalar-value validation → Unicode text. For converting text into code-point notation, use Text to Unicode Code Points.

Input settings

Auto-detect recognizes distinctive syntax and reports ambiguous plain values.

Only configured ASCII separators are accepted. Non-breaking and zero-width spaces are not silently removed.

Advanced options

Normalization is separate from code-point validation and changes the decoded Unicode sequence after conversion.

Decoded output is plain text. It is never executed, rendered as HTML, or opened as a URL.

Open Text to Unicode Code Points

Token diagnostics

Run the tool to inspect parsed tokens.

Unicode code-point parsing diagnostics
TokenParsed scalar valueCharacterUTF-8 bytesStatus

What this Unicode Code Points to Text tool does

This converter parses code-point notation, validates every parsed value as a Unicode scalar value, and builds decoded text with String.fromCodePoint(). It supports U+ notation, plain hexadecimal, decimal values, 0x values, HTML numeric references, JavaScript escapes, Python escapes and CSS escapes. Processing runs locally in the browser.

Supported input notation

Supported examples include U+0041 U+00E9 U+1F600, 0041 00E9 1F600, 65 233 128512, 0x0041 0x00E9, A, A, \u{41}, \u0041, \U0001F600 and CSS escapes such as \41 . Auto-detect is conservative: it accepts distinctive syntax and reports ambiguous or mixed input instead of guessing.

What is a Unicode scalar value?

A Unicode scalar value is any code point from U+0000 through U+10FFFF except the surrogate range U+D800 through U+DFFF. Surrogate values are reserved for UTF-16 internals and are rejected as standalone input.

Code points and UTF-16 surrogate pairs

U+1F600 is one Unicode code point for 😀. In legacy JavaScript UTF-16 escape syntax, the same character may be written as \uD83D\uDE00. This tool combines valid surrogate pairs into one scalar value and rejects isolated or reversed surrogate escapes.

Supplementary characters

Supplementary characters are above U+FFFF. Examples include U+1F600 → 😀, U+1F9D1 → 🧑 and U+20000 → 𠀀. They are converted as full code points rather than truncated UTF-16 units.

Combining marks and normalization

U+0065 U+0301 decodes to decomposed . With normalization off, that exact sequence is preserved. If you explicitly select NFC, the decoded text may normalize to precomposed é. Normalization is a separate post-conversion option and is off by default.

Emoji and ZWJ sequences

The sequence U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466 may render as the family emoji 👨‍👩‍👧‍👦. Several code points can form one grapheme cluster, and every code point is preserved in order.

Invisible and control characters

Decoded text may contain U+0000 NULL, tabs, line feeds, carriage returns, no-break spaces, zero-width characters, variation selectors and bidirectional controls. The tool preserves valid scalar values and reports unusual invisible or format characters in warnings and diagnostics.

Invalid input

Malformed prefixes, missing semicolons, invalid hexadecimal digits, values above U+10FFFF, surrogate values, isolated UTF-16 surrogates, mixed formats and ambiguous plain values are reported as errors. The parser does not silently repair malformed notation.

How to use the tool

Select the input notation, paste code points or escapes, choose the token separator policy, and process. Load example uses the selected notation. To generate U+ notation from ordinary text, open Text to Unicode Code Points.

Privacy and processing

This tool runs in your browser. Your input is not submitted to UnicodeNow, inserted into URLs, saved to localStorage or sessionStorage, or sent through analytics by this page.

Common uses

Examples

Input:

U+0048 U+0065 U+006C U+006C U+006F U+002C U+0020 U+00E9 U+0020 U+1F600

Output:

Hello, é 😀

Combining input:

U+0065 U+0301

Output:

Emoji sequence input:

U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466

Output:

👨‍👩‍👧‍👦

The emoji output contains several code points but may display as one grapheme cluster.

Frequently asked questions

What is a Unicode code point?

A Unicode code point is a numeric value assigned to a Unicode character or text component.

What is a Unicode scalar value?

A Unicode scalar value is a valid Unicode code point excluding the UTF-16 surrogate range.

What is the valid Unicode range?

The valid range is U+0000 through U+10FFFF, excluding U+D800 through U+DFFF.

Why are surrogate values invalid?

Surrogate values are reserved as UTF-16 code units and are not standalone Unicode scalar values.

What is the difference between U+1F600 and \uD83D\uDE00?

U+1F600 is one Unicode code point. \uD83D\uDE00 is its UTF-16 surrogate-pair representation.

Can I enter decimal values?

Yes. Select Decimal input and enter values such as 65 233 128512.

Can I enter HTML character references?

Yes. The tool supports hexadecimal and decimal numeric references, not named HTML entities.

Can I enter JavaScript escapes?

Yes. It supports JavaScript code-point escapes and valid UTF-16 surrogate pairs without executing JavaScript.

Can I enter Python Unicode escapes?

Yes. Use \uXXXX for BMP values and \UXXXXXXXX for supplementary values.

Can I mix input formats?

No. Choose one notation for predictable strict parsing.

Why is my output invisible?

Some valid Unicode values are spaces, controls, joiners, variation selectors or format characters.

Does normalization change the result?

It can. Normalization changes the decoded code-point sequence after conversion and is off by default.

Can this tool create emoji sequences?

Yes. Provide every required code point in order, including joiners and variation selectors.

Does the tool accept U+D800?

No. Surrogate code points such as U+D800 are rejected.

Is my input uploaded?

No. This tool runs in your browser and does not submit input to UnicodeNow.

Related tools

Unicode Character Inspector

Inspect each Unicode character, encoding, category, script and normalization form.

UnicodeProcessed locally

Unicode Sequence Analyzer

Analyze code points, grapheme clusters, bytes, scripts and directionality.

UnicodeProcessed locally

Unicode Character Lookup

Search Unicode characters by glyph, code point, name, script or block.

UnicodeServer tool

Unicode Escape Converter

Convert text to and from Unicode escape sequences and numeric entities.

DeveloperProcessed locally

Hex to Text

Decode hexadecimal byte values into UTF-8 text.

EncodingProcessed locally

Related guides

Unicode vs UTF-8

Unicode defines characters and code points. UTF-8 encodes those code points as bytes for files, databases, web pages, APIs and network messages.

What Is a Unicode Code Point?

Learn what Unicode code points are, how U+ notation works, and how code points differ from glyphs, bytes, code units and visible characters.

What Is a Grapheme Cluster?

Learn how grapheme clusters represent user-perceived characters, why emoji and combining marks affect length, and how to handle text safely.

Unicode Normalization Explained

Learn NFC, NFD, NFKC and NFKD, canonical and compatibility equivalence, and safe normalization for comparison, search and identifiers.