Blocks and "assigned

Last updated 2026-11-02

On this page

Unicode divides code points into blocks: contiguous ranges with a name — Basic Latin is U+0000–U+007F, CJK Unified Ideographs is U+4E00–U+9FFF. The list lives in the official Blocks.txt and currently holds some 350 entries, growing with each version.

A block is an administrative range, not a category

A block says "this range belongs to this group", not what the characters are:

  • one block can contain letters, digits, punctuation and symbols;
  • one category of characters can be scattered across dozens of blocks;
  • between blocks there are gaps — code points belonging to no block at all.

Actual classification comes from general category (letter / digit / punctuation / symbol / control…) and script (Latin / Greek / Han…), which are different axes entirely.

Unassigned code points

A block is a reservation, not necessarily a full house:

Block Range Code points Assigned
Basic Latin U+0000–U+007F 128 95
CJK Unified Ideographs U+4E00–U+9FFF 20,992 effectively full, still growing

The 33 missing from Basic Latin are the control characters (U+0000–U+001F and U+007F): legal in encoding, but without a formal name, so not counted as assigned. That is why the coverage figure on this site is 95, not 128.

How "assigned" is computed

The rule here: a code point with a formal name.

Concretely, read extracted/DerivedName.txt (Unicode's derived names, already computing things like CJK UNIFIED IDEOGRAPH-4E00), merge it with the general category from UnicodeData.txt into small same-category segments, then count, per block, how many code points fall inside those segments.

Therefore:

  • control characters: encoded, unnamed → not counted;
  • CJK ideographs: derived names → counted;
  • private use: no names → not counted;
  • surrogate range: not characters → not counted.

How this site displays it

A block row reads covered / assigned: how many of the characters that should exist in this block the font can draw.

The progress bar, however, is scaled by the block size. Two different denominators, which can feel odd: for a 20,000-code-point CJK block the bar stays short while the number may look healthy.

Why not use one denominator everywhere? Using the block size is unfair to fonts — nobody can cover unassigned code points, and the result is a column of single-digit percentages that shows no difference. Using only assigned instead skews towards small, fully-assigned blocks and loses the "how much of this range do I occupy" reading of the bar.

Favouriting blocks

Favourites are per block, never per character: a CJK block holds 20,000 code points and storing them one by one is neither useful nor affordable. Only the block index is stored; contents are fetched fresh each time.

Further reading

  • Unicode: Blocks.txt
  • Unicode: extracted/DerivedName.txt
  • The Unicode Standard, chapter 4 (Character Properties)