Unicode block explained

A Unicode block is one of several contiguous ranges of numeric character codes (code points) of the Unicode character set that are defined by the Unicode Consortium for administrative and documentation purposes. Typically, proposals such as the addition of new glyphs are discussed and evaluated by considering the relevant block or blocks as a whole.

Each block is generally, but not always, meant to supply glyphs used by one or more specific languages, or in some general application area such as mathematics, surveying, decorative typesetting, social forums, etc.

Design and implementation

Unicode blocks are identified by unique names, which use only ASCII characters and are usually descriptive of the nature of the symbols, in English; such as "Tibetan" or "Supplemental Arrows-A". (When comparing block names, one is supposed to equate uppercase with lowercase letters, and ignore any whitespace, hyphens, and underbars; so the last name is equivalent to "supplemental_arrows__a" and "SUPPLEMENTALARROWSA".[1]

Blocks are pairwise disjoint; that is, they do not overlap. The starting code point and the size (number of code points) of each block are always multiples of 16; therefore, in the hexadecimal notation, the starting (smallest) point is U+xxx0 and the ending (largest) point is U+yyyF, where xxx and yyy are three or more hexadecimal digits. (These constraints are intended to simplify the display of glyphs in Unicode Consortium documents, as tables with 16 rows labeled with the last hexadecimal digit of the code point.[1]) The size of a block may range from the minimum of 16 to a maximum of 65,536 code points.

Every assigned code point has a glyph property called "Block", whose value is a character string naming the unique block that owns that point.[2] However, a block may also contain unassigned code points, usually reserved for future additions of characters that "logically" should belong to that block. Code points not belonging to any of the named blocks, e.g. in the unassigned planes 4–13, have the value block="No_Block".[1]

Simply belonging to a particular Unicode block does not guarantee the certain particular properties of the characters it is or will be expected to contain. The identity of any character is determined by its properties stated in the Unicode Character Database. For example, the contiguous range of 32 noncharacter code points U+FDD0..U+FDEF share none of the properties common to the other characters in the Arabic Presentation Forms-A block, that they are certainly not Arabic script characters or "right-to-left noncharacters", and are assigned there as a filler to this block given that it has been agreed that no further Arabic compatibility characters will be encoded. [3]

Other classifications

Each Unicode point also has a property called "General Category", that attempts to describe the role of the corresponding symbol in the languages or applications for whose sake it was included in the system. Examples of General Categories are "Lu" (meaning upper-case letter), "Nd" (decimal digit), "Pi" (open-quote punctuation), and "Mn" (non-spacing mark, i.e. a diacritic for the preceding glyph). This division is completely independent of code blocks: the code points with a given General Category generally span many blocks, and do not have to be consecutive, not even within each block.[4]

Each code point also has a script property, specifying which writing system it is intended for, or whether it is intended for multiple writing systems. This, also, is independent of block.

In descriptions of the Unicode system, a block may be subdivided into more specific subgroups, such as the "Chess symbols" in the Miscellaneous Symbols block (not to be confused with the separate Chess Symbols block). Those subgroups are not "blocks" in the technical sense used by the Unicode consortium, and are named only for the convenience of users.

List of blocks

Unicode version=15.1 defines 328 blocks:[1]

state=uncollapsed

Moved blocks

The Unicode Stability Policy requires that a character, once assigned, may not be moved or removed, although it may be deprecated. This applies to Unicode 2.0 and all subsequent versions.

Prior to this, the following former blocks were moved:

Former Unicode blocks from before Unicode 2.0
Block rangeHistorical
block name
Version when addedVersion when removedRange now occupied bySuperseded by blockCode pointsAssigned charactersScripts
U+1000..U+105FTibetan[5] 1.0.01.0.1MyanmarTibetan9671Tibetan
U+3400..U+3D2DHangul[6] 1.0.02.0 23502350Hangul
U+3D2E..U+44B71.1 2.01930 1930
U+44B8..U+4DFFHangul Supplementary-BCJK Unified Ideographs Extension A and Yijing Hexagram Symbols23762376

External links

Notes and References

  1. Web site: Unicode Blocks data file, Unicode version 15.1. Unicode Consortium. 2023-09-12.
  2. Web site: Glossary . 2022-08-07 . www.unicode.org.
  3. Web site: Private-Use Characters, Noncharacters & Sentinels FAQ . 2023-07-24 . www.unicode.org.
  4. Web site: Unicode Core Specification, Chapter 4: Character Properties. 2021-09-15.
  5. Web site: 3.8: Block-by-Block Charts . The Unicode Standard . Version 1.0 . Unicode Consortium.
  6. Web site: Appendix E: Block Names . The Unicode Standard . Version 1.1 . Unicode Consortium.