Unicode Characters Complete List 2026
Every character on your screen — every letter, number, emoji, and symbol — has a unique number assigned to it by the Unicode Standard. That number is the character's Unicode code point, and together, all those code points form the most comprehensive character encoding system ever built.
As of Unicode 16.0 (released in late 2024), the standard contains over 154,000 characters covering 168 modern and historic writing systems, plus thousands of symbols, emoji, and special characters. This guide breaks it all down — what Unicode is, how it works, what character sets it contains, and how to use Unicode characters in your own work.
What Is Unicode?
Unicode is a universal character encoding standard. It assigns a unique number (code point) to every character used in human writing, from the Latin alphabet to Tibetan script to ancient Egyptian hieroglyphics.
Before Unicode, different regions used incompatible encoding systems. ASCII only covered English characters. Western European systems didn't handle Japanese text. Files created on one system often looked like garbage on another. Unicode solved all of this by creating a single, universal encoding that covers every writing system in the world.
Unicode code points are written as U+ followed by a hexadecimal number. The letter A is U+0041. The euro sign is U+20AC. The thumbs up emoji is U+1F44D.
Unicode Character Sets
Basic Latin (U+0000 – U+007F)
The original 128 ASCII characters. This block contains all standard English letters (both cases), digits 0–9, punctuation marks, and control characters like tab and newline. Every text system in the world supports this range.
Examples: A (U+0041), z (U+007A), 0 (U+0030), ! (U+0021), @ (U+0040)
Latin-1 Supplement (U+0080 – U+00FF)
Extended Latin characters for Western European languages. Includes accented letters, currency symbols, and special punctuation.
Examples: é (U+00E9), ñ (U+00F1), © (U+00A9), ® (U+00AE), £ (U+00A3)
Latin Extended-A and B (U+0100 – U+024F)
Additional Latin characters for Central and Eastern European languages, plus phonetic extensions.
Examples: Ā (U+0100), ş (U+015F), Ž (U+017D)
Greek and Coptic (U+0370 – U+03FF)
Greek alphabet including all letters used in modern Greek plus ancient Greek polytonic characters. Also includes Coptic letters used in Egyptian Christian texts.
Examples: α (U+03B1), β (U+03B2), π (U+03C0), Ω (U+03A9), Σ (U+03A3)
Cyrillic (U+0400 – U+04FF)
Characters used in Russian, Ukrainian, Bulgarian, Serbian, and dozens of other Slavic and non-Slavic languages. Extended Cyrillic blocks cover minority languages of Russia and Central Asia.
Examples: А (U+0410), Я (U+042F), ж (U+0436)
Arabic (U+0600 – U+06FF)
Arabic script used in Arabic, Persian, Urdu, and other languages. Arabic is written right-to-left, and Unicode handles this with bidirectional text algorithms.
Examples: ا (U+0627), ب (U+0628), Arabic letters have contextual forms
CJK Unified Ideographs (U+4E00 – U+9FFF)
Over 20,000 Chinese, Japanese, and Korean characters. This is the largest single block in the Basic Multilingual Plane. Characters shared across languages are unified into single code points.
Examples: 中 (U+4E2D), 日 (U+65E5), 語 (U+8A9E)
Emoji and Symbols (U+1F300 – U+1F9FF)
Thousands of emoji covering faces, animals, food, travel, activities, objects, and more. New emoji are added with each Unicode version based on proposals submitted to the Unicode Consortium.
Examples: 😀 (U+1F600), 🌍 (U+1F30D), 🎉 (U+1F389)
Mathematical Symbols (U+2200 – U+22FF)
Mathematical operators and symbols used in notation. If you work with math, science, or engineering, this block has what you need.
Examples: ∞ (U+221E), √ (U+221A), ∑ (U+2211), ∫ (U+222B)
Miscellaneous Symbols (U+2600 – U+26FF)
A diverse collection of symbols including weather symbols, chess pieces, playing card suits, religious symbols, and more.
Examples: ☀ (U+2600), ☁ (U+2601), ♟ (U+265F), ☎ (U+260E)
Dingbats (U+2700 – U+27BF)
Ornamental characters originally from the Zapf Dingbats font. Stars, arrows, checkmarks, crosses, and decorative marks.
Examples: ✓ (U+2713), ✗ (U+2717), ★ (U+2605), ➡ (U+27A1)
Arrows (U+2190 – U+21FF)
All types of arrows — left, right, up, down, diagonal, double-headed, curved. Essential for diagrams and user interfaces.
Examples: ← (U+2190), → (U+2192), ↑ (U+2191), ↔ (U+2194)
Unicode Encoding Methods
Unicode defines the characters, but you also need an encoding method to store and transmit them. There are three main options:
UTF-8
The most widely used Unicode encoding on the web. UTF-8 uses 1 to 4 bytes per character:
- 1 byte: U+0000 to U+007F (Basic Latin — ASCII compatible)
- 2 bytes: U+0080 to U+07FF (Latin extensions, Greek, Cyrillic, Arabic)
- 3 bytes: U+0800 to U+FFFF (CJK, most other languages)
- 4 bytes: U+10000 to U+10FFFF (emoji, historic scripts, rare characters)
UTF-8 is backward compatible with ASCII, making it ideal for web content. Over 98% of web pages use UTF-8.
UTF-16
Uses 2 or 4 bytes per character. More efficient than UTF-8 for CJK-heavy content, but not ASCII compatible. Used internally by Windows, Java, and JavaScript. Characters above U+FFFF require "surrogate pairs" — two 16-bit code units that together represent one character.
UTF-32
Uses exactly 4 bytes per character, making it the simplest to process but the most memory-intensive. Rarely used in practice. Useful in situations where direct indexing by character position is needed.
Legacy Encodings (Worth Knowing)
- ASCII: 7-bit, 128 characters, English only
- ISO-8859-1 (Latin-1): 8-bit, Western European languages
- Shift-JIS: Japanese encoding, still found in older files
- GB2312/GBK: Chinese encodings used in mainland China
When you open a file and see garbled text, it's usually because the file was saved in one encoding and opened with another. The fix is specifying the correct encoding when opening the file.
Unicode Character Reference Tables
Code Point Ranges by Block
| Block Name | Range | Count | Contents |
|---|---|---|---|
| Basic Latin | U+0000–U+007F | 128 | ASCII, English alphabet |
| Latin-1 Supplement | U+0080–U+00FF | 128 | Western European chars |
| Latin Extended-A | U+0100–U+017F | 128 | Central/Eastern European |
| Latin Extended-B | U+0180–U+024F | 208 | More Latin variants |
| IPA Extensions | U+0250–U+02AF | 96 | Phonetic alphabet |
| Greek and Coptic | U+0370–U+03FF | 135 | Greek alphabet |
| Cyrillic | U+0400–U+04FF | 256 | Russian, Slavic scripts |
| Arabic | U+0600–U+06FF | 256 | Arabic script |
| Hebrew | U+0590–U+05FF | 112 | Hebrew alphabet |
| Devanagari | U+0900–U+097F | 128 | Hindi, Sanskrit |
| Japanese Hiragana | U+3040–U+309F | 96 | Hiragana syllabary |
| Japanese Katakana | U+30A0–U+30FF | 96 | Katakana syllabary |
| CJK Unified Ideographs | U+4E00–U+9FFF | 20,902 | Chinese/Japanese/Korean |
| General Punctuation | U+2000–U+206F | 111 | Dashes, quotes, spaces |
| Currency Symbols | U+20A0–U+20CF | 32 | $, €, £, ¥, etc. |
| Mathematical Operators | U+2200–U+22FF | 256 | Math symbols |
| Misc. Symbols | U+2600–U+26FF | 256 | Weather, chess, etc. |
| Dingbats | U+2700–U+27BF | 192 | Stars, arrows, ornaments |
| Emoji (Misc. Symbols and Pictographs) | U+1F300–U+1F5FF | 768 | Emoji set 1 |
| Emoticons | U+1F600–U+1F64F | 80 | Face emoji |
| Transport and Map | U+1F680–U+1F6FF | 128 | Vehicles, places |
| Supplemental Symbols | U+1F900–U+1F9FF | 256 | Extended emoji |
Most-Used Special Characters
| Character | Name | Code Point | HTML Entity |
|---|---|---|---|
| © | Copyright | U+00A9 | © |
| ® | Registered Trademark | U+00AE | ® |
| ™ | Trademark | U+2122 | ™ |
| € | Euro Sign | U+20AC | € |
| £ | Pound Sign | U+00A3 | £ |
| ¥ | Yen Sign | U+00A5 | ¥ |
| ° | Degree Sign | U+00B0 | ° |
| ± | Plus-Minus | U+00B1 | ± |
| × | Multiplication | U+00D7 | × |
| ÷ | Division | U+00F7 | ÷ |
| • | Bullet | U+2022 | • |
| – | En Dash | U+2013 | – |
| — | Em Dash | U+2014 | — |
| ← | Left Arrow | U+2190 | ← |
| → | Right Arrow | U+2192 | → |
| ∞ | Infinity | U+221E | ∞ |
| √ | Square Root | U+221A | √ |
| ♥ | Heart Suit | U+2665 | ♥ |
| ★ | Black Star | U+2605 | ★ |
| ☆ | White Star | U+2606 | ☆ |
Practical Usage Tips
Finding the Code Point for Any Character
- Windows: Open Character Map (charmap.exe), click any character to see its Unicode value
- Mac: Open Character Viewer (Edit > Emoji & Symbols), hover over any character
- Web: Search "unicode [character name]" on Google or visit unicode.org
- JavaScript:
'A'.codePointAt(0).toString(16)returns '41' - Python:
hex(ord('A'))returns '0x41'
Inserting Unicode Characters
- Windows shortcut: Type the 4-digit hex code, then press Alt+X in Word
- Mac shortcut: Hold Option and type the character's shortcut key
- HTML: Use &#x followed by the hex code — e.g., ∞ for ∞
- CSS content property: Use the code point — e.g., content: "\221E"
- Direct paste: Copy from a symbol reference site and paste anywhere
Unicode in Programming
Modern programming languages handle Unicode natively:
- Python 3: All strings are Unicode by default. Use
chr(0x2665)for ♥ - JavaScript: Use
\u2665or\u{1F600}for emoji (ES6+) - Java:
\u2665escape sequences in string literals - Swift: Native Unicode support; emoji work directly in Swift strings
Normalization: NFC vs. NFD
Some characters can be represented multiple ways in Unicode. The letter é can be a single code point (U+00E9) or the letter e (U+0065) followed by a combining acute accent (U+0301). These look identical but have different byte sequences.
Unicode Normalization Forms resolve this:
- NFC (Canonical Decomposition, Canonical Composition): Prefers composed characters — best for storage and display
- NFD (Canonical Decomposition): Decomposes into base + combining marks — better for text processing
- NFKC/NFKD: Also normalize compatibility characters (e.g., fi ligature → fi)
Unicode Versions and What's New in 2026
Unicode releases new versions periodically, adding characters from newly documented scripts, approved emoji, and other characters submitted by member organizations.
- Unicode 16.0 (2024): Added Garay script, Gurung Khema, Kirat Rai, Ol Onal, Sunuwar, and Todhri scripts, plus new emoji
- Unicode 15.1 (2023): Added CJK extensions and several new emoji
- Unicode 15.0 (2022): Added Nag Mundari, Kawi scripts, and approximately 31 new emoji
The total character count in Unicode 16.0 stands at 154,998 — covering 168 scripts. No other encoding standard comes close.
Why UTF-8 Became the Default
UTF-8 won because of one key property: it's backward compatible with ASCII. Every ASCII file is automatically valid UTF-8. That meant the entire existing infrastructure of the early internet — servers, browsers, text editors — could adopt UTF-8 without breaking anything.
Combine that with its efficient storage for ASCII-dominant text (1 byte per character) and its ability to represent the entire Unicode range, and UTF-8's dominance was inevitable.
If you're setting encoding for any web content today, UTF-8 is the correct answer unless you have a very specific reason to choose otherwise.
Where to Go Next
Unicode is a deep topic. Once you understand code points and encoding basics, you can explore topics like bidirectional text algorithms (for mixing Arabic/Hebrew with Latin scripts), combining characters, emoji sequences and ZWJ (zero-width joiner) combinations, and Unicode collation (sorting text across languages).
For practical everyday use, what matters most is knowing UTF-8 is your default encoding, understanding that every character has a unique code point, and knowing how to look up or insert any character you need. With those fundamentals, you can work comfortably with text in any language or symbol system. Check out our special characters keyboard shortcuts guide for platform-specific insertion methods, or our text symbols for social media guide to put these characters to immediate use.