Beginner guide · no code required

What Is Unicode?

You don't need to know how to program to understand what Unicode is or why nearly everything you type, read, or send depends on it. This page explains it in plain language, then links out to the deeper reference tools on this site once you're ready for them.

1The Short Answer
One code point, recognized everywhere U+0041 connects to a phone, a laptop, any app, and any country, illustrating that every device agrees on the same character. Same number, everywhere A U+0041 smartphone A phone laptop_mac A laptop apps Any app public Any country
lightbulb

Unicode is the system that gives every letter, number, punctuation mark, symbol, and emoji its own unique number — so that every computer, phone, and app in the world can agree on exactly what piece of text they're looking at, no matter what language or device it started on.

A
Every "A" you've ever typed — on a phone, a laptop, in any app, in any country — refers to the same underlying number: 65, written in Unicode's own notation as U+0041. That number, not the shape on screen, is what software actually stores and compares.
2The Problem Before Unicode

Early computers used ASCII, a standard from 1963 that set aside just 128 numbers for text — enough for the English alphabet, digits, and basic punctuation, but nothing else. That worked fine for English, but was useless for languages with accented letters, entirely different alphabets, or thousands of characters like Chinese.

So every region invented its own patchwork fix: dozens of separate, mutually incompatible "code pages," each reusing the same numbers to mean completely different characters depending on which one a computer happened to be using. Open a file created with the wrong code page and you'd get mojibake — rows of garbled symbols instead of the intended text — because the number 233 might mean "é" in one system and something else entirely in another.

Unicode's entire purpose was to end that patchwork: replace hundreds of incompatible numbering systems with a single, universal one big enough for every writing system on Earth — used at once, not swapped in and out.

Same byte, two different results The byte value 233 is read as the letter e-acute on a matching code page, but produces garbled mojibake text on a mismatched one. Before unicode One byte value, read two different ways check_circle Matching code page byte 233 (0xE9) café Reads correctly — expected result warning Mismatched code page byte 233 (0xE9) café Same byte, wrong character — mojibake
3The Big Idea: One Number Per Character

Think of Unicode as a single, agreed-upon reference book: every character used in writing is assigned exactly one entry, called a code point, written like U+0041. As of Unicode 17.0, that reference book holds 159,866 entries, and it grows every year as the Unicode Consortium — the nonprofit that maintains the standard — adds newly documented scripts, historical writing systems, technical symbols, and emoji.

It covers far more than letters: numerals from multiple numbering systems, punctuation, mathematical and currency symbols, musical notation, dead scripts no longer in everyday use, and yes, every emoji you've ever sent. That's why a "pizza" emoji sent from an iPhone shows up as the same pizza on an Android phone — both devices are pointing at the same Unicode entry, even though each draws it with its own artwork.

One registry entry, and everything the registry covers A sample entry for U+0041 above six category chips: letters and scripts, numbers, punctuation, symbols and currency, emoji, and historic scripts. Unicode 17.0 · 159,866 entries U+0041 LATIN CAPITAL LETTER A A language Letters & scripts calculate Numbers format_quote Punctuation functions Symbols & currency mood Emoji history_edu Historic scripts
4Code Points vs. Encoding: How Text Is Actually Stored

A code point is just a number in the registry — it doesn't, by itself, tell a computer how to store or send that number as actual bits and bytes on disk or over a network. That's the job of an encoding. Unicode defines a few (UTF-8, UTF-16, UTF-32), and UTF-8 is by far the most common on the web today.

UTF-8's trick is that it uses a variable number of bytes per character: common characters used in English take just one byte, while other characters take more, depending on how large their code point number is.

UTF-8 uses a different number of bytes per character A takes 1 byte, the euro sign takes 3 bytes, and the grinning-face emoji takes 4 bytes in UTF-8. UTF-8 in bytes A U+0041 41 1 byte U+20AC E2 82 AC 3 bytes 😀 U+1F600 F0 9F 98 80 4 bytes

This is why a document's file size can shift depending on which languages it mostly contains, and it's the root cause of most "encoding errors" you've seen — they happen when software misreads bytes using the wrong encoding, producing the same kind of mojibake that plagued the pre-Unicode era, just from a different cause.

5Why This Matters for Type & Font Design

Unicode defines characters — the abstract idea of "the letter A" or "the Devanagari letter KA." It does not define how those characters look. That's the job of a glyph: the actual shape a font draws for a character (or sometimes for a whole cluster of characters combined) when you type it.

No font supports all 159,866 Unicode characters — type designers choose which scripts and character sets to support, then draw a glyph for each code point they cover. Some scripts make this straightforward: one code point, one glyph. Others — like Devanagari, Arabic, or Gurmukhi — require several glyphs per code point, because the shape changes depending on what surrounds it or where it sits in a word. That gap between "the character Unicode defines" and "the glyphs a font actually needs to draw" is the central design problem behind complex-script typography.

One code point can need several glyphs The Arabic letter BEH, U+0628, needs isolated, initial, medial, and final glyph forms depending on its position in a word. Character vs. glyph One code point U+0628 ARABIC LETTER BEH (dual-joining) Isolated form U+FE8F Initial form U+FE91 Medial form U+FE92 Final form U+FE90 link One dual-joining letter, up to four glyphs — this is exactly what the Joining Type and Joining Group fields on each character page describe.
auto_storiesGo deeper
If you're designing type for a specific script, the Script Design series walks through exactly this — visual anatomy, shaping behavior, and font production pitfalls — starting with Devanagari and Gurmukhi.
6Quick Glossary
Character
The abstract idea of a letter, digit, or symbol — what a person thinks of as "one thing" they typed.
Code point
The unique number Unicode assigns to a character, written U+XXXX.
Glyph
The actual visual shape a font draws to represent a character (or part of one) on screen or in print.
Script
A writing system — a set of related characters used to write one or more languages, such as Latin, Devanagari, or Arabic.
Block
A named, contiguous range of code points in the Unicode chart, usually — but not always — grouping one script together.
Plane
One of 17 large sections of the entire Unicode code space, each holding up to 65,536 code points.
Encoding
The method — UTF-8, UTF-16, or UTF-32 — used to turn code points into actual bytes for storage or transmission.