Find any Unicode block fast
Unicode organises its more than a million possible code points into named blocks — contiguous ranges set aside for a related family of characters. Knowing which block a character lives in helps when you build fonts, validate input, filter by script, or debug mojibake. This tool lets you search the common blocks by name or by a code point and instantly see the range it occupies.
How blocks are organised
The Unicode code space runs from U+0000 to U+10FFFF — a range of 1,114,112 possible code points. These are divided into 17 planes of 65,536 code points each, and the entire space is further subdivided into over 300 named blocks. Blocks are always contiguous and non-overlapping; a code point belongs to exactly one block.
Plane 0 (Basic Multilingual Plane, BMP) — U+0000 to U+FFFF — contains the scripts and symbols used daily: Latin, Cyrillic, Arabic, Hebrew, CJK Unified Ideographs, common symbols, and more. Most of the world’s everyday text lives here.
Plane 1 (Supplementary Multilingual Plane, SMP) — U+10000 to U+1FFFF — holds historic scripts (Linear B, Egyptian Hieroglyphs, Cuneiform), musical notation, mathematical alphanumeric symbols, and most of the emoji used in social media and messaging.
Planes 2–3 (Supplementary Ideographic Plane and Tertiary) — additional CJK Unified Ideographs for rare characters in historical documents.
Planes 14–16 — special-use and private-use areas.
How it works
Each block has a fixed start and end code point, defined in the Unicode
Character Database file Blocks.txt. When you type a name, the tool matches it
against block names. When you type a code point such as U+1F600, it parses the
hexadecimal value and finds the block whose start and end span contains it — a
simple range check. The point count column is the size of that span, computed as
end - start + 1. Note that some code points inside a block may be unassigned,
so the span is an upper bound on assigned characters.
Commonly referenced blocks
| Block name | Range | Notable for |
|---|---|---|
| Basic Latin | U+0000–U+007F | ASCII; the 128 characters of US-ASCII |
| Latin-1 Supplement | U+0080–U+00FF | Western European accented letters, £ ¥ © ® |
| General Punctuation | U+2000–U+206F | Em dash, en dash, non-breaking space, ellipsis |
| Cyrillic | U+0400–U+04FF | Russian, Ukrainian, Bulgarian, Serbian, and others |
| Arabic | U+0600–U+06FF | Arabic script, digits, and presentation forms |
| CJK Unified Ideographs | U+4E00–U+9FFF | Core set of Chinese, Japanese, and Korean characters |
| Emoticons | U+1F600–U+1F64F | Classic emoji: smiley faces, gestures |
| Miscellaneous Symbols and Pictographs | U+1F300–U+1F5FF | Weather, food, nature, objects emoji |
Developer tips
- A code point search returns the block whose span contains the value, not just blocks with assigned characters at that point.
- To check if a character is ASCII, verify it is in Basic Latin (U+0000–U+007F).
- Emoji are scattered across several BMP and SMP blocks. If you need to detect or
filter emoji in code, filtering by block alone is insufficient — use Unicode
property escapes such as
\p{Emoji}instead. - All searching happens locally in your browser, so nothing you type is uploaded.