Unicode Converter — Text to U+ Code Points

Convert text to Unicode code points (U+XXXX) or turn code points back into characters. Great for emoji and symbols.

✴️

Unicode Code Point Converter

Text • U+ code points

0 chars
0 chars

How to Use the Unicode Code Point Converter

  1. Pick a direction — use the toggle at the top (e.g. encode vs decode).
  2. Type or paste your text — the result updates live as you type; large inputs are fine.
  3. Copy the result — one click copies the output to your clipboard.
  4. Swap — flip the direction (⇄) to reverse the conversion instantly.

Why Use This Unicode Code Point Converter

🎯

Reversible in one click

Encoding and decoding share the page, so any result can be pasted straight back to confirm it round-trips to the text you started with — the quickest check that nothing was mangled.

Live as you type

Results are recalculated on every keystroke, with no submit step and no page reload, so a value can be adjusted until the answer looks right rather than guessed once.

🔒

100% private

Everything runs in your browser — no account, no uploads, nothing leaves your device.

Understanding the Unicode Code Point Converter

Every character — letters, symbols and emoji — has a unique Unicode code point written like U+0041 (A) or U+1F44B (👋). This converter maps any text to its code points and converts code points back into characters.

It is essential for developers handling internationalization, emoji and special symbols, and for anyone curious about the code behind a character. Instant and private in your browser.

Formula & Logic

Unicode assigns a codepoint to every character in every writing system, written as U+ followed by hexadecimal digits. The codepoint is an abstract number; how it becomes bytes depends on the encoding. UTF-8 is variable-width, using one byte for ASCII and up to four for characters like emoji, which is why it is backward compatible with ASCII and why a "character count" and a "byte count" differ. UTF-16 uses surrogate pairs for codepoints above U+FFFF, which is the reason JavaScript reports an emoji's length as 2 — a genuine and frequent source of bugs.

Codepoint written as U+ followed by 4–6 hex digitsUTF-8: 1 byte below U+0080, 2 below U+0800, 3 below U+10000, 4 aboveUTF-16 surrogate pair for codepoints above U+FFFFHigh surrogate = 0xD800 + ((cp − 0x10000) >> 10)

where:

codepoint
the abstract character number, independent of encoding
UTF-8
variable width 1–4 bytes; ASCII-compatible
surrogate pair
two UTF-16 units representing one codepoint above U+FFFF

Assumptions: A visible character may be several codepoints — a flag emoji is two regional indicators, and skin-tone variants add modifiers. Counting "characters" therefore depends on whether you mean codepoints, bytes, or grapheme clusters.

SourceThe Unicode Standard

Step-by-Step Example: The Grinning Face Emoji U+1F600

Take one codepoint through decimal, UTF-8 bytes and UTF-16 surrogates.

  • CharacterGrinning face
  • CodepointU+1F600
  1. Hex to decimal: 0x1F600 = 128,512.
  2. It exceeds U+FFFF, so UTF-8 needs four bytes: F0 9F 98 80.
  3. UTF-16 needs a surrogate pair. Subtract: 0x1F600 − 0x10000 = 0xF600.
  4. High surrogate: 0xD800 + (0xF600 >> 10) = 0xD83D.
  5. Low surrogate: 0xDC00 + (0xF600 & 0x3FF) = 0xDE00.
  6. So one visible character is 1 codepoint, 4 UTF-8 bytes, or 2 UTF-16 units.

ResultU+1F600 = 128,512 decimal = F0 9F 98 80 in UTF-8

This is exactly why JavaScript's "😀".length returns 2 rather than 1 — it counts UTF-16 units. Truncating a string between the surrogates produces an invalid character, which is the classic bug behind mangled emoji in text fields with length limits.

Unicode Code Point Converter FAQ

Every character has a Unicode number written like U+0041 (A) or U+1F600 (😀). This tool maps text to those numbers and back.

Related Converters

✔ Written & reviewed by Dr Sam — 20+ yrs in management & research leadership📅 Last updated September 2026📚 Sources: The Unicode Standard & Unicode Character Database📑 How we build & check these

Code Point, Code Unit and What a Character Actually Is

A code point is a number assigned to a character in the Unicode standard, written in the U+ notation. It is not the same as the bytes used to store it, and it is not the same as what a reader would call a character. A waving-hand emoji is a single code point, but it occupies four bytes in UTF-8 and two code units in UTF-16 — which is why the same string can truthfully be reported as having one, two or four in length depending on which layer is asking.

What people perceive as one character is a grapheme cluster, and it can be built from several code points. An emoji with a skin-tone modifier is two; a family emoji can be four or more joined by zero-width joiners; an accented letter may be a single precomposed code point or a base letter followed by a combining mark, and the two forms look identical while comparing as different strings. Normalisation exists precisely to reconcile that, and text that will be compared or searched should be normalised before it is stored.

The practical consequences show up wherever text is counted or cut. Truncating a string by code units can split a character in half and produce a replacement glyph; a length limit expressed in characters may allow far more bytes than a database column expects; and reversing a string by code point rearranges combining marks onto the wrong letters. The code points on this page are the layer where the standard defines meaning, and the layers above and below it each count differently.