What Is Unicode? Code Points, UTF-8 & Symbols Explained

Igor R.

July 25, 2026

Short answer: Unicode is a global standard that gives every character a unique number — a code point — so that letters, symbols and emoji display the same on every device, app and language. When you see U+20AC for €, that number is the character; everything else (Alt codes, HTML entities, fonts) is just a way to enter or draw it.

Curious what a specific character’s code point is? Paste it into the Symbol Identifierto see its exact Unicode value, name and encoding.

Every symbol on this site — π, €, ✓, ☺ — has a Unicode code point, and understanding that one idea explains a lot: why Alt codes work, what HTML entities are, and why a character sometimes shows up as an empty box. Here’s Unicode in plain English.

The problem Unicode solved

Computers only store numbers, so text has always been a lookup table: a number stands for a character. The original table, ASCII (1963), covered just 128 characters — enough for English letters, digits and basic punctuation, but nothing else.

As computing spread, everyone invented their own extensions: Latin-1 and Windows-1252 for Western Europe, Shift-JIS for Japanese, dozens of others. The trouble was that the same number meant different characters in different tables. Open a file with the wrong one and you’d get mojibake — the garbled “é” or “’” you still occasionally see. Text simply didn’t travel between systems.

Unicode fixed this with one idea: a single, universal table for every character in every writing system, so a number always means the same character everywhere.

Code points: every character has a number

Unicode assigns each character a code point — a number written in hexadecimal with a U+ prefix. A few examples:

  • U+0041 → A (Latin capital A)
  • U+00F1 → ñ (n with tilde)
  • U+03A9 → Ω (Greek capital omega)
  • U+20AC → € (euro sign)
  • U+1F600 → 😀 (grinning face)

That code point is the character’s permanent identity. The first 128 code points are deliberately identical to ASCII, so Unicode is backward-compatible with decades of English text.

Characters vs glyphs (why you sometimes see a box)

Here’s a distinction that clears up a lot of confusion:

  • A character is the abstract idea — “Latin small letter a” — with its code point. That’s what Unicode defines.
  • A glyph is the drawn shape of that character in a particular font. That’s what a font provides.

So Unicode says which character; the font decides how it looks. The same code point renders differently in Times New Roman, Arial or Comic Sans — all still the letter a. And when a font has no glyph for a code point, you get the empty box (nicknamed “tofu”): the character is perfectly valid, the font just can’t draw it. That’s almost always the fix when a symbol shows as a box — switch to a font that includes the glyph.

How code points become bytes: UTF-8, UTF-16, UTF-32

A code point is a number; to store or send it, a computer turns it into bytes using an encoding. Unicode defines three:

  • UTF-8 — variable length, 1 to 4 bytes per character. The first 128 code points use a single byte identical to ASCII, so plain English text is unchanged; other characters use more bytes. It’s backward-compatible, compact for Latin text, and used by about 99% of web pages — the default of the modern internet.
  • UTF-16 — uses 2 bytes for common characters and 4 for the rest (via “surrogate pairs”). It’s the internal format of Windows, Java and JavaScript.
  • UTF-32 — a flat 4 bytes for every character; simple but space-hungry, so it’s rarely used for storage.

The key point: these are three ways to write the same code points. U+20AC is € in all of them — they just package it into bytes differently. When you save a file “as UTF-8,” you’re choosing the packaging, not changing the characters.

How big is Unicode?

Unicode has room for about 1.1 million code points (U+0000 to U+10FFFF). As of version 17.0 (2025), more than 290,000 are assigned to actual characters, covering 172 writing systems plus thousands of symbols and emoji — with new characters added roughly once a year by the Unicode Consortium.

Those code points are organised into 17 “planes.” The first, the Basic Multilingual Plane (U+0000–U+FFFF), holds nearly everything in everyday use: Latin, Cyrillic, Greek, Arabic, Hebrew, common CJK, and most symbols. The higher “astral” planes hold emoji, rare and historic scripts, and extra CJK characters — which is why emoji code points look long, like U+1F600.

More than letters

Unicode covers far more than alphabets:

  • Symbols — currency (€ ₹ ₿), math (± ≤ √ ∑), arrows (→ ⇌), punctuation, technical marks.
  • Emoji — yes, emoji are Unicode characters with code points, mostly in the astral planes.
  • Combining characters — an accent can be its own character stacked onto a letter. So é can be a single code point (U+00E9) or a plain e followed by a combining acute accent (U+0065 + U+0301). They look the same but are different sequences underneath — the reason two identical-looking strings sometimes don’t match.
  • Variation selectors — invisible characters that nudge a symbol between its plain-text and colour-emoji forms (which is why ☀ can appear as ☀️).

Why this matters when you type symbols

Almost every “how do I type this?” answer traces back to code points:

  • Windows Alt codes are just a way to enter a code point from the keypad — Alt + 8364 produces € because 8364 is the decimal of U+20AC. (When Alt codes don’t work, it’s usually the keypad or Num Lock, not the character.)
  • HTML entities are code points too: € (decimal) and € (hex) both give €, and € is a friendly alias for the same code point.
  • The tofu box ▯ means a missing glyph, not a missing character — switch fonts.
  • “Astral” characters (emoji, fancy-text letters) are harder to type because they sit outside the everyday plane and lack simple shortcuts — so you copy them instead.
  • Look up any character’s code point with the Alt Code Finder, or paste one into the Symbol Identifier to see exactly what it is.

A character, three ways

CharacterNameCode pointUTF-8 bytesHTML
ALatin capital AU+004141A
ñSmall n with tildeU+00F1C3 B1ñ
ΩGreek capital omegaU+03A9CE A9Ω
Euro signU+20ACE2 82 AC€
😀Grinning faceU+1F600F0 9F 98 80😀

Notice the UTF-8 bytes grow from one (A) to four (😀) as the code point gets larger — that’s the variable-length design at work.

Frequently asked questions

What is Unicode in simple terms?

Unicode is a universal standard that gives every character — every letter, symbol and emoji, in every language — a unique number called a code point. Because every system agrees on those numbers, text displays the same across devices, apps and languages, instead of turning into garbled characters.

What is a code point?

A code point is the unique number Unicode assigns to a character, written in hexadecimal with a “U+” prefix — for example U+0041 is A and U+20AC is €. It’s the character’s permanent identity; Alt codes, HTML entities and fonts are all just ways to enter or display that code point.

What is the difference between Unicode and UTF-8?

Unicode is the character set — the master list of characters and their code points. UTF-8 is an encoding: a way of turning those code points into bytes for storage and transmission. UTF-8 is the most common, using one to four bytes per character and staying compatible with ASCII; UTF-16 and UTF-32 are alternative encodings of the same Unicode.

Why does a character show up as a box ▯?

The box (called “tofu”) means the font you’re using has no glyph — no drawn shape — for that character. The character itself is valid Unicode; the font just can’t display it. Switching to a font that includes the character, such as Arial or Segoe UI Symbol, fixes it.

Are emoji part of Unicode?

Yes. Emoji are Unicode characters with their own code points, most of them in the higher “astral” planes (for example U+1F600 for 😀). That’s why they work across apps — though each platform draws them with its own artwork, so the same emoji looks a little different on iPhone, Android and Windows.

How many characters are in Unicode?

As of Unicode 17.0 (2025), more than 290,000 characters are assigned, covering 172 writing systems plus thousands of symbols and emoji — out of about 1.1 million possible code points. The Unicode Consortium adds more roughly once a year.


Written by Igor R.. Follows the Unicode Standard (version 17.0, 2025), published by the Unicode Consortium. Last updated July 2026.

Leave a Comment