В стандарте Unicode плоскость — это непрерывная группа из 65 536 (2 16 ) кодовых точек . Существует 17 плоскостей, идентифицируемых числами от 0 до 16, что соответствует возможным значениям 00–10 16 первых двух позиций в шестипозиционном шестнадцатеричном формате (U+ hh hhhh ). Плоскость 0 — это базовая многоязычная плоскость (BMP), которая содержит наиболее часто используемые символы. Более высокие плоскости с 1 по 16 называются «дополнительными плоскостями». [1] Последняя кодовая точка в Unicode — это последняя кодовая точка в плоскости 16, U+10FFFF. Начиная с версии Unicode 16.0, пяти плоскостям назначены кодовые точки (символы), а семь имеют названия.
Ограничение в 17 плоскостей обусловлено UTF-16 , который может кодировать 2x20 кодовых точек (16 плоскостей) как пары слов , а также BMP как одно слово. [2] UTF-8 был разработан с гораздо большим ограничением в 2x31 ( 2,147,483,648) кодовых точек (32,768 плоскостей), и все равно сможет кодировать 2x21 ( 2,097,152) кодовых точек (32 плоскости) даже при текущем ограничении в 4 байта . [3]
17 плоскостей могут вместить 1 114 112 кодовых точек. Из них 2 048 являются суррогатами (используются для создания пар в UTF-16), 66 не являются символами , а 137 468 зарезервированы для частного использования , оставляя 974 530 для публичного назначения.
Плоскости далее подразделяются на блоки Unicode , которые, в отличие от плоскостей, не имеют фиксированного размера. 338 блоков, определенных в Unicode 16.0, покрывают 27% возможного пространства кодовых точек и варьируются по размеру от минимум 16 кодовых точек (шестнадцать блоков) до максимум 65 536 кодовых точек (дополнительные зоны частного использования A и B, которые составляют всю совокупность плоскостей 15 и 16). Для будущего использования были предварительно нанесены диапазоны символов для большинства известных современных и древних систем письма. [4]
Первая плоскость, плоскость 0 , базовая многоязыковая плоскость ( BMP ), содержит символы почти всех современных языков и большое количество символов . Основной целью BMP является поддержка унификации предыдущих наборов символов, а также символов для письма . Большинство назначенных кодовых точек в BMP используются для кодирования китайских, японских и корейских ( CJK ) символов.
Коды High Surrogate ( U+D800–U+DBFF ) и Low Surrogate ( U+DC00–U+DFFF ) зарезервированы для кодирования не-BMP символов в UTF-16 с использованием пары 16- битных кодов: один High Surrogate и один Low Surrogate. Одна точка кода суррогата никогда не будет назначена символу.
65 520 из 65 536 кодовых точек в этой плоскости были выделены для блока Unicode, оставив всего 16 кодовых точек в одном нераспределенном диапазоне (2FE0..2FEF).
Начиная с версии Unicode 16.0 [update], BMP включает в себя следующие 164 блока:
Plane 1 , Supplementary Multilingual Plane ( SMP ), содержит исторические письменности (кроме идеографической CJK), а также символы и обозначения, используемые в определенных областях. Письменность включает линейное письмо B , египетские иероглифы и клинопись . Она также включает реформированные английские орфографии, такие как Shavian и Deseret , и некоторые современные письменности, такие как Osage , Warang Citi , Adlam , Wancho и Toto . Символы и обозначения включают историческую и современную музыкальную нотацию ; математические буквенно-цифровые обозначения ; стенографии; эмодзи и другие наборы пиктограмм; и игровые символы для игральных карт , маджонга и домино .
Начиная с версии Unicode 16.0 [update], SMP включает в себя следующие 161 блок:
Плоскость 2 , дополнительная идеографическая плоскость ( SIP ), используется для идеографических символов CJK, в основном унифицированных идеографических символов CJK , которые не были включены в более ранние стандарты кодирования символов.
Начиная с версии Unicode 16.0 [update], SIP состоит из следующих семи блоков:
Плоскость 3 — это третичная идеографическая плоскость (TIP). Расширение CJK Unified Ideographs Extension G было добавлено к TIP в Unicode 13.0, выпущенном в марте 2020 года. [5] Оно также предварительно выделено для шрифтов Oracle Bone и Small Seal Script . [6]
Начиная с версии Unicode 16.0 [update], TIP состоит из следующих двух блоков:
Плоскости с 4 по 13 (плоскости с 4 по D в шестнадцатеричном формате ): для плоскостей с 4 по 13 еще не назначены и не предложены для назначения никакие символы.
Плоскость 14 ( E в шестнадцатеричном формате) обозначается как дополнительная плоскость специального назначения ( SSP ). Она включает в себя следующие два блока , начиная с Unicode 16.0 :[update]
Две плоскости 15 и 16 (плоскости F и 10 в шестнадцатеричном формате) каждая содержит " Область частного использования ". Они содержат блоки с именами Дополнительная область частного использования-A ( PUA-A ) и -B ( PUA-B ). Области частного использования доступны для использования сторонами за пределами ISO и Unicode (кодировка символов частного использования).