Блок Unicode — это один из нескольких смежных диапазонов числовых кодов символов ( кодовых точек ) набора символов Unicode , которые определены Консорциумом Unicode для административных и документационных целей. Обычно предложения, такие как добавление новых глифов, обсуждаются и оцениваются путем рассмотрения соответствующего блока или блоков в целом.
Каждый блок, как правило, но не всегда, предназначен для предоставления глифов, используемых в одном или нескольких конкретных языках или в какой-либо общей прикладной области, такой как математика , геодезия , декоративный набор , социальные форумы и т. д.
Блоки Unicode идентифицируются уникальными именами, которые используют только символы ASCII и обычно описывают природу символов на английском языке ; например, «Tibetan» или «Supplemental Arrows-A». (При сравнении имен блоков предполагается, что заглавные буквы следует приравнивать к строчным, а пробелы, дефисы и подчеркивания игнорировать; поэтому последнее имя эквивалентно «supplemental_arrows__a» и «SUPPLEMENTALARROWSA». [1]
Блоки попарно не пересекаются ; то есть они не перекрываются. Начальная кодовая точка и размер (количество кодовых точек) каждого блока всегда кратны 16; поэтому в шестнадцатеричной нотации начальная (наименьшая) точка — U+ xxx 0, а конечная (наибольшая) точка — U+ yyy F, где xxx и yyy — три или более шестнадцатеричных цифры. (Эти ограничения предназначены для упрощения отображения глифов в документах Консорциума Unicode в виде таблиц с 16 строками, помеченными последней шестнадцатеричной цифрой кодовой точки. [1] ) Размер блока может варьироваться от минимум 16 до максимум 65 536 кодовых точек.
Каждая назначенная кодовая точка имеет свойство глифа, называемое «Блок», значением которого является строка символов, именующая уникальный блок, которому принадлежит эта точка. [2] Однако блок может также содержать неназначенные кодовые точки, обычно зарезервированные для будущих добавлений символов, которые «логически» должны принадлежать этому блоку. Кодовые точки, не принадлежащие ни одному из названных блоков, например, в неназначенных плоскостях 4–13, имеют значение block="No_Block". [1]
Просто принадлежность к определенному блоку Unicode не гарантирует определенных конкретных свойств символов, которые он должен или будет содержать. Идентичность любого символа определяется его свойствами, указанными в базе данных символов Unicode. Например, непрерывный диапазон из 32 несимвольных кодовых точек U+FDD0..U+FDEF не разделяет ни одно из свойств, общих с другими символами в блоке Arabic Presentation Forms-A , то есть они определенно не являются символами арабского письма или «несимволами с письмом справа налево», и назначаются там в качестве заполнителя для этого блока, учитывая, что было согласовано, что никакие другие совместимые с арабским символы не будут кодироваться. [3]
Каждая точка Unicode также имеет свойство, называемое « Общая категория », которое пытается описать роль соответствующего символа в языках или приложениях, ради которых он был включен в систему. Примерами Общих категорий являются «Lu» (что означает заглавную букву), «Nd» (десятичная цифра), «Pi» (открытая кавычка) и «Mn» (непробеловый знак, т. е. диакритический знак для предшествующего глифа). Это разделение полностью независимо от кодовых блоков: кодовые точки с заданной Общей категорией обычно охватывают много блоков и не обязательно должны быть последовательными, даже внутри каждого блока. [4]
Каждая кодовая точка также имеет свойство script , указывающее, для какой системы письма она предназначена, или предназначена ли она для нескольких систем письма. Это также не зависит от блока.
В описаниях системы Unicode блок может быть подразделен на более конкретные подгруппы, такие как « Шахматные символы » в блоке «Разные символы» (не путать с отдельным блоком «Шахматные символы »). Эти подгруппы не являются «блоками» в техническом смысле, используемом консорциумом Unicode, и названы только для удобства пользователей.
Unicode 16.0 определяет 338 блоков: [1]
Политика стабильности Unicode требует, чтобы символ, однажды назначенный, не мог быть перемещен или удален, хотя он может быть объявлен устаревшим. Это относится к Unicode 2.0 и всем последующим версиям.
До этого были перемещены следующие бывшие блоки: