Unicode Code Points to Text
Convert U+XXXX, 0x, and escape-style code points back to text.
Convert Unicode text into code-point notation such as U+0041, U+00E9, and U+1F600.
The tool iterates by Unicode code point, so supplementary characters such as emoji are returned as one scalar value rather than two UTF-16 surrogate halves.
Your text is processed in this browser and is not submitted to UnicodeNow.
This tool converts Unicode text → Unicode scalar values → selected notation. Output represents Unicode code points, not UTF-8 bytes or UTF-16 code units. For converting U+ notation back to text, use Unicode Code Points to Text.
Normalization changes the Unicode sequence before conversion and therefore changes the code points shown in the output.
NFKC and NFKD may replace compatibility characters and remove distinctions that matter in some workflows.
Input is preserved exactly unless you explicitly select normalization.
Output represents Unicode code points, not UTF-8 bytes or UTF-16 code units.
Run the tool to inspect individual code points.
| Index | Display | Code point | Decimal | UTF-8 bytes | Label |
|---|
This converter turns Unicode text into Unicode scalar values and then formats those values in the notation you choose. The default output is U+ notation, such as U+0041 U+00E9 U+1F600. Processing is local in the browser, and the output remains plain selectable text for copying into tests, documentation, source code or debugging notes.
The conversion is intentionally one-way on this page. To convert code-point notation back to text, open Unicode Code Points to Text.
A Unicode code point is the numeric identity of a character or text component. U+0041 identifies A, U+00E9 identifies the precomposed letter é, and U+1F600 identifies the grinning face emoji. The valid Unicode scalar range is U+0000 through U+10FFFF, excluding surrogate code points from U+D800 through U+DFFF.
One visible grapheme cluster can contain one code point or several. A decomposed accented letter may contain a base character plus a combining mark. Family emoji can contain several emoji joined with U+200D ZERO WIDTH JOINER. Flags use regional indicator pairs, and some emoji use variation selectors or skin-tone modifiers. This tool outputs one formatted value per Unicode scalar value; it does not collapse a grapheme cluster into a single invented code point.
Code points and bytes describe different layers. For é, the code point is U+00E9, while the UTF-8 bytes are C3 A9. For 😀, the code point is U+1F600, while the UTF-8 bytes are F0 9F 98 80. The diagnostic table shows UTF-8 bytes for reference, but the main output is code-point notation.
The Basic Multilingual Plane covers U+0000 through U+FFFF. Supplementary planes cover U+10000 through U+10FFFF. JavaScript stores supplementary characters internally as UTF-16 surrogate pairs, but this tool iterates by code point, so 😀 becomes U+1F600, not U+D83D U+DE00.
Visually identical text can have different code-point sequences. Precomposed é is U+00E9. Decomposed é is U+0065 U+0301. With normalization off, the original sequence is preserved exactly. If NFC is explicitly selected, the decomposed sequence may become U+00E9; if NFD is selected, precomposed characters may decompose into base letters and combining marks. For a dedicated comparison view, use the Unicode Normalizer.
Emoji sequences often contain several code points. The family emoji 👨👩👧👦 includes multiple emoji code points joined by U+200D. Rainbow flags, profession emoji, gendered emoji, flags and skin-tone sequences follow similar rules. The output keeps every component visible in the code-point sequence.
The same input can be rendered as U+ notation, plain hexadecimal, decimal values, 0x-prefixed values, HTML numeric references, JavaScript code-point escapes, Python escapes or CSS escapes. CSS escapes are terminated with a trailing space so they remain safe when followed by hexadecimal text.
Tabs, line breaks, no-break spaces, zero-width joiners, variation selectors, bidi controls and other format characters are valid Unicode values. This tool preserves them and includes them in the output. When unusual invisible or format characters are present, the warnings and diagnostic table call that out without removing anything automatically.
Paste text, choose an output notation, separator and hexadecimal casing, then process the text. Use Advanced options only when you intentionally want to normalize the input before conversion. Load example inserts Hello, café 😀; changing notation or normalization never replaces your input.
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.
Input:
A é 😀
U+ notation:
U+0041 U+0020 U+00E9 U+0020 U+1F600
Combining input:
é
Code points:
U+0065 U+0301
The second example contains two code points even though it may render like one accented letter.
A Unicode code point is a numeric value assigned to a Unicode character or text component, commonly written as U+ followed by hexadecimal digits.
U+ is the conventional prefix for hexadecimal Unicode code-point values such as U+0041, U+00E9 and U+1F600.
No. A visible grapheme cluster may contain one code point, a base character plus combining marks, or several emoji code points joined together.
Emoji sequences can use variation selectors, skin-tone modifiers, regional indicators and zero-width joiners to form one visible grapheme.
A code point identifies a Unicode value. UTF-8 is a byte encoding used to store or transmit that value.
It may be precomposed as U+00E9 or decomposed as U+0065 followed by U+0301 COMBINING ACUTE ACCENT.
The Basic Multilingual Plane contains code points from U+0000 through U+FFFF.
Supplementary code points are values from U+10000 through U+10FFFF, outside the Basic Multilingual Plane.
Surrogate pairs are the UTF-16 representation of supplementary code points using two UTF-16 code units.
No. The default code-point formats output one supplementary value such as U+1F600, not U+D83D U+DE00.
Yes. Invisible and format characters are preserved and identified in the diagnostics where possible.
It can. Normalization may change the Unicode sequence before conversion, so the code points shown in the output may change.
Yes. Select Decimal in the Output notation control.
Yes. The tool can output hexadecimal or decimal HTML numeric character references.
No. This tool runs in your browser and does not submit input to UnicodeNow.
Convert U+XXXX, 0x, and escape-style code points back to text.
Inspect each Unicode character, encoding, category, script and normalization form.
Analyze code points, grapheme clusters, bytes, scripts and directionality.
Search Unicode characters by glyph, code point, name, script or block.
Convert text to and from Unicode escape sequences and numeric entities.
Convert UTF-8 text bytes into hexadecimal values.
Convert text to UTF-8 bytes and validate byte sequences.
Count UTF-8 bytes, code points, grapheme clusters and UTF-16 code units for text.
Find zero-width, control, variation, private-use and spacing characters.
Unicode defines characters and code points. UTF-8 encodes those code points as bytes for files, databases, web pages, APIs and network messages.
Learn what Unicode code points are, how U+ notation works, and how code points differ from glyphs, bytes, code units and visible characters.
Learn how grapheme clusters represent user-perceived characters, why emoji and combining marks affect length, and how to handle text safely.
Learn NFC, NFD, NFKC and NFKD, canonical and compatibility equivalence, and safe normalization for comparison, search and identifiers.
Learn how zero-width spaces, joiners, non-breaking spaces, bidi controls and other invisible Unicode characters affect text.
Learn how Unicode escape syntax works across JavaScript, JSON, Python, PHP, Java, HTML, CSS and URLs.
Choose the right Unicode length unit for UI limits, storage limits, APIs, JavaScript, Python and PHP.