What is Unicode?
To understand what is Unicode, think of it as the international standard that gives every character in every writing system its own number, called a code point, such as U+00B0 for °. Version 16.0 defines 154,998 characters, so a symbol typed on one device appears as the same symbol on any other.
The short answer
Computers only store numbers. To show text, they need an agreed list that says which number means which character. Before Unicode there were hundreds of such lists (code pages), and each covered only a few languages. A document written in Greek on one system turned into nonsense on another.
Unicode replaced that patchwork with a single list for everything: Latin, Cyrillic, Arabic, Devanagari, Chinese, mathematical notation, arrows, music, emoji and much more. It is maintained by the Unicode Consortium, a non-profit whose members include Apple, Google, Microsoft and many universities, and it is kept in step with the international standard ISO/IEC 10646.
Code points: the number behind every character
Each character has a code point, written as U+ followed by at least four hexadecimal digits. A few examples you can open on SymbolHub:
| Character | Code point | Official name |
|---|---|---|
| A | U+0041 | LATIN CAPITAL LETTER A |
| ° | U+00B0 | DEGREE SIGN |
| π | U+03C0 | GREEK SMALL LETTER PI |
| € | U+20AC | EURO SIGN |
| 😀 | U+1F600 | GRINNING FACE |
The official names are written in capitals and never change once published, even when they contain a mistake. U+FE18 is still called PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET, with “bracket” misspelled, because software relies on names staying stable. Unicode adds a corrected alias instead.
A code point is not a picture. It says which character is meant; the font on your device decides what it looks like. That is why the same ★ looks slightly different on an iPhone, a Windows PC and in a printed book, while remaining the same character underneath.
Planes: how the space is organised
The code space runs from U+0000 to U+10FFFF, which is 1,114,112 possible code points. It is divided into 17 planes of 65,536 code points each:
- Plane 0, the Basic Multilingual Plane (BMP), U+0000–U+FFFF: almost every modern script, common punctuation, currency signs, arrows, maths operators and the older dingbats.
- Plane 1, the Supplementary Multilingual Plane, U+10000–U+1FFFF: historic scripts, musical notation, the mathematical alphanumeric letters used by fancy text generators, and most emoji.
- Planes 2 and 3: tens of thousands of rarer Chinese, Japanese and Korean ideographs.
- Plane 14: special-purpose tags and variation selectors.
- Planes 15 and 16: private use, for characters that organisations define for themselves.
Most of the space is still empty. That is deliberate: Unicode has room for every script anyone is likely to encode for a very long time.
Blocks and general categories
Inside the planes, characters are grouped into blocks: contiguous ranges with a shared theme, such as Arrows (U+2190–U+21FF), Mathematical Operators or Box Drawing. The current data file lists 338 blocks. Blocks are a convenient map, but they are not strict categories; arrows also appear in Dingbats and Miscellaneous Symbols and Arrows. You can browse every block in our Unicode block reference.
Each character also has a general category: letter, number, punctuation, symbol, separator, mark or control, each with sub-types. This is how software knows that é is a letter (so it can be capitalised), that ∑ is a maths symbol, and that U+200B is an invisible format character. The Unicode character lookup shows the category of anything you paste.
Versions: Unicode keeps growing
A new version is published roughly once a year. Unicode 16.0, released in September 2024, brought the total to 154,998 characters across 168 scripts. Every version only adds; a character, once encoded, is never removed or moved, and its code point never changes. This stability policy is why a document written in 1995 still displays correctly today.
New characters take time to reach users. A symbol added in 2024 needs updated fonts and operating systems before it displays, which is the most common reason a newer character shows as an empty box. Our guide on symbols showing as boxes explains how to check the version of any character and what to do about it.
Encodings: from code points to bytes
Unicode says which number each character has. An encoding says how to store that number in bytes. There are three standard ones:
- UTF-8 uses one to four bytes per character and is identical to ASCII for plain English text. It is used by the overwhelming majority of web pages. See UTF-8 explained.
- UTF-16 uses two or four bytes. Windows, Java and JavaScript strings use it internally, which is why an emoji counts as two “characters” in JavaScript.
- UTF-32 uses four bytes for every character. It is simple but wasteful, so it is mostly used inside programs.
All three can store every Unicode character. The problems people see, such as “é” instead of “é”, come from text being written in one encoding and read as another, not from Unicode itself.
Characters, glyphs and what you actually see
What a reader thinks of as one character can be several code points. The flag of a country is two regional-indicator letters. A family emoji is several people joined by the zero width joiner. The letter é can be stored as one code point (U+00E9) or as e followed by a combining acute accent (U+0301). Unicode calls a user-perceived character a grapheme cluster, and well-written software counts, selects and deletes text by grapheme clusters rather than raw code points.
This is also why two strings that look identical can fail to match in a search. Normalization (NFC and NFD) converts text to one consistent form; we cover it for developers in Unicode in CSS and JavaScript.
Why it matters when you copy symbols
When you copy a symbol from SymbolHub, you copy its code point, not an image. That has practical consequences:
- It stays searchable, selectable and readable by screen readers.
- It works in any app that accepts text: documents, chats, spreadsheets, bios and code.
- Its appearance follows the font. A check mark in a serif font looks different from one in a sans-serif font, and that is expected.
- Look-alikes are different characters. The degree sign ° and the masculine ordinal º look similar but have different code points, so choosing the right one matters for search and meaning.
Frequently asked questions
How many characters are in Unicode?
Unicode 16.0, released in 2024, contains 154,998 characters. The code space has room for 1,114,112 code points, so most of it is still unassigned.
What does U+ mean?
U+ introduces a Unicode code point written in hexadecimal. U+00B0 means the character with the number B0 hex (176 decimal), which is the degree sign °.
Is Unicode the same as UTF-8?
No. Unicode is the list of characters and their numbers. UTF-8 is one way of storing those numbers as bytes; UTF-16 and UTF-32 are others.
Who decides which characters are added to Unicode?
The Unicode Consortium. Anyone can submit a proposal; the Unicode Technical Committee reviews the evidence of use and approves characters for a future version.
Can a Unicode character ever be removed?
No. Under the Unicode stability policy, once a character is encoded its code point is never removed or reassigned, and its name never changes.