Plane (Unicode)





In the Unicode standard, a plane is a continuous group of 65,536 (216) code points. There are 17 planes, identified by the numbers 0 to 16, which corresponds with the possible values 00–1016 of the first two positions in six position hexadecimal format (U+hhhhhh). Plane 0 is the Basic Multilingual Plane (BMP), which contains most commonly-used characters. The higher planes 1 through 16 are called "supplementary planes".[1] The very last code point in Unicode is the last code point in plane 16, U+10FFFF. As of Unicode version 12.0, six of the planes have assigned code points (characters), and four are named.


The limit of 17 planes is due to UTF-16, which can encode 220 code points (16 planes) as pairs of words, plus the BMP as a single word.[2]. UTF-8 was designed with a much larger limit of 231 (2,147,483,648) code points (32,768 planes), and can encode 221 (2,097,152) code points (32 planes) even under the current limit of 4 bytes.[3]


The 17 planes can accommodate 1,114,112 code points. Of these, 2,048 are surrogates (used to make the pairs in UTF-16), 66 are non-characters, and 137,468 are reserved for private use, leaving 974,530 for public assignment.


Planes are further subdivided into Unicode blocks, which, unlike planes, do not have a fixed size. The 300 blocks defined in Unicode 12.0 cover 25% of the possible code point space, and range in size from a minimum of 16 code points (fourteen blocks) to a maximum of 65,536 code points (Supplementary Private Use Area-A and -B, which constitute the entirety of planes 15 and 16). For future usage, ranges of characters have been tentatively mapped out for most known current and ancient writing systems.[4]




Contents






  • 1 Overview


  • 2 Basic Multilingual Plane


  • 3 Supplementary Multilingual Plane


  • 4 Supplementary Ideographic Plane


  • 5 Unassigned planes


  • 6 Supplementary Special-purpose Plane


  • 7 Private Use Area planes


  • 8 References





Overview




































































































Assigned characters as of Unicode version 12.0
Plane
Allocated code points[note 1]
Assigned characters[note 2]

 0 BMP
65,472
55,444

 1 SMP
23,568
21,353

2 SIP
60,912
60,859

14 SSP
368
337

15 SPUA-A
65,536


16 SPUA-B
65,536
Totals
281,392
137,993




  1. ^ Code points which have been allocated to a Unicode block.


  2. ^ The total number of graphic, format and control characters (i.e., excluding private-use characters, noncharacters and surrogate code points).




Basic Multilingual Plane




A map of the Basic Multilingual Plane. Each numbered box represents 256 code points.


The first plane, plane 0, the Basic Multilingual Plane (BMP) contains characters for almost all modern languages, and a large number of symbols. A primary objective for the BMP is to support the unification of prior character sets as well as characters for writing. Most of the assigned code points in the BMP are used to encode Chinese, Japanese, and Korean (CJK) characters.


The High Surrogate (U+D800–U+DBFF) and Low Surrogate (U+DC00–U+DFFF) codes are reserved for encoding non-BMP characters in UTF-16 by using a pair of 16-bit codes: one High Surrogate and one Low Surrogate. A single surrogate code point will never be assigned a character.


65,472 of the 65,536 code points in this plane have been allocated to a Unicode block, leaving just 64 code points in unallocated ranges (48 code points at 0870..089F and 16 code points at 2FE0..2FEF).



As of Unicode 12.0[update], the BMP comprises the following 163 blocks:





  • Basic Latin (Lower half of ISO/IEC 8859-1: ISO/IEC 646:1991-IRV aka ASCII) (0000–007F)


  • Latin-1 Supplement (Upper half of ISO/IEC 8859-1) (0080–00FF)


  • Latin Extended-A (0100–017F)


  • Latin Extended-B (0180–024F)


  • IPA Extensions (0250–02AF)


  • Spacing Modifier Letters (02B0–02FF)


  • Combining Diacritical Marks (0300–036F)


  • Greek and Coptic (0370–03FF)


  • Cyrillic (0400–04FF)


  • Cyrillic Supplement (0500–052F)


  • Armenian (0530–058F)


  • Aramaic Scripts:


    • Hebrew (0590–05FF)


    • Arabic (0600–06FF)


    • Syriac (0700–074F)


    • Arabic Supplement (0750–077F)


    • Thaana (0780–07BF)


    • N'Ko (07C0–07FF)


    • Samaritan (0800–083F)


    • Mandaic (0840–085F)


    • Syriac Supplement (0860–086F)


    • Arabic Extended-A (08A0–08FF)




  • Brahmic scripts:


    • Devanagari (0900–097F)


    • Bengali (0980–09FF)


    • Gurmukhi (0A00–0A7F)


    • Gujarati (0A80–0AFF)


    • Oriya (0B00–0B7F)


    • Tamil (0B80–0BFF)


    • Telugu (0C00–0C7F)


    • Kannada (0C80–0CFF)


    • Malayalam (0D00–0D7F)


    • Sinhala (0D80–0DFF)


    • Thai (0E00–0E7F)


    • Lao (0E80–0EFF)


    • Tibetan (0F00–0FFF)


    • Myanmar (1000–109F)




  • Georgian (10A0–10FF)


  • Hangul Jamo (1100–11FF)


  • Ethiopic (1200–137F)


  • Ethiopic Supplement (1380–139F)


  • Cherokee (13A0–13FF)


  • Unified Canadian Aboriginal Syllabics (1400–167F)


  • Ogham (1680–169F)


  • Runic (16A0–16FF)


  • Philippine scripts:


    • Tagalog (1700–171F)


    • Hanunoo (1720–173F)


    • Buhid (1740–175F)


    • Tagbanwa (1760–177F)




  • Khmer (1780–17FF)


  • Mongolian (1800–18AF)


  • Unified Canadian Aboriginal Syllabics Extended (18B0–18FF)


  • Limbu (1900–194F)


  • Tai scripts:


    • Tai Le (1950–197F)


    • New Tai Lue (1980–19DF)


    • Khmer Symbols (19E0–19FF)


    • Buginese (1A00–1A1F)


    • Tai Tham (1A20–1AAF)




  • Combining Diacritical Marks Extended (1AB0–1AFF)


  • Balinese (1B00–1B7F)


  • Sundanese (1B80–1BBF)


  • Batak (1BC0–1BFF)


  • Lepcha (1C00–1C4F)


  • Ol Chiki (1C50–1C7F)


  • Cyrillic Extended-C (1C80–1C8F)


  • Georgian Extended (1C90–1CBF)


  • Sundanese Supplement (1CC0–1CCF)


  • Vedic Extensions (1CD0–1CFF)

  • Latin-2 supplement:


    • Phonetic Extensions (1D00–1D7F)


    • Phonetic Extensions Supplement (1D80–1DBF)


    • Combining Diacritical Marks Supplement (1DC0–1DFF)


    • Latin Extended Additional (1E00–1EFF)




  • Greek Extended (1F00–1FFF)


  • Symbols:


    • General Punctuation (2000–206F)


    • Superscripts and Subscripts (2070–209F)


    • Currency Symbols (20A0–20CF)


    • Combining Diacritical Marks for Symbols (20D0–20FF)


    • Letterlike Symbols (2100–214F)


    • Number Forms (2150–218F)


    • Arrows (2190–21FF)


    • Mathematical Operators (2200–22FF)


    • Miscellaneous Technical (2300–23FF)


    • Control Pictures (2400–243F)


    • Optical Character Recognition (2440–245F)


    • Enclosed Alphanumerics (2460–24FF)


    • Box Drawing (2500–257F)


    • Block Elements (2580–259F)


    • Geometric Shapes (25A0–25FF)


    • Miscellaneous Symbols (2600–26FF)


    • Dingbats (2700–27BF)


    • Miscellaneous Mathematical Symbols-A (27C0–27EF)


    • Supplemental Arrows-A (27F0–27FF)


    • Braille Patterns (2800–28FF)


    • Supplemental Arrows-B (2900–297F)


    • Miscellaneous Mathematical Symbols-B (2980–29FF)


    • Supplemental Mathematical Operators (2A00–2AFF)


    • Miscellaneous Symbols and Arrows (2B00–2BFF)




  • Glagolitic (2C00–2C5F)


  • Latin Extended-C (2C60–2C7F)


  • Coptic (2C80–2CFF)


  • Georgian Supplement (2D00–2D2F)


  • Tifinagh (2D30–2D7F)


  • Ethiopic Extended (2D80–2DDF)


  • Cyrillic Extended-A (2DE0–2DFF)


  • Supplemental Punctuation (2E00–2E7F)


  • CJK scripts and symbols:


    • CJK Radicals Supplement (2E80–2EFF)


    • Kangxi Radicals (2F00–2FDF)


    • Ideographic Description Characters (2FF0–2FFF)


    • CJK Symbols and Punctuation (3000–303F)


    • Hiragana (3040–309F)


    • Katakana (30A0–30FF)


    • Bopomofo (3100–312F)


    • Hangul Compatibility Jamo (3130–318F)


    • Kanbun (3190–319F)


    • Bopomofo Extended (31A0–31BF)


    • CJK Strokes (31C0–31EF)


    • Katakana Phonetic Extensions (31F0–31FF)


    • Enclosed CJK Letters and Months (3200–32FF)


    • CJK Compatibility (3300–33FF)


    • CJK Unified Ideographs Extension A (3400–4DBF)


    • Yijing Hexagram Symbols (4DC0–4DFF)


    • CJK Unified Ideographs (4E00–9FFF)




  • Yi Syllables (A000–A48F)


  • Yi Radicals (A490–A4CF)


  • Lisu (A4D0–A4FF)


  • Vai (A500–A63F)


  • Cyrillic Extended-B (A640–A69F)


  • Bamum (A6A0–A6FF)


  • Modifier Tone Letters (A700–A71F)


  • Latin Extended-D (A720–A7FF)


  • Syloti Nagri (A800–A82F)


  • Common Indic Number Forms (A830–A83F)


  • Phags-pa (A840–A87F)


  • Saurashtra (A880–A8DF)


  • Devanagari Extended (A8E0–A8FF)


  • Kayah Li (A900–A92F)


  • Rejang (A930–A95F)


  • Hangul Jamo Extended-A (A960–A97F)


  • Javanese (A980–A9DF)


  • Myanmar Extended-B (A9E0–A9FF)


  • Cham (AA00–AA5F)


  • Myanmar Extended-A (AA60–AA7F)


  • Tai Viet (AA80–AADF)


  • Meetei Mayek Extensions (AAE0–AAFF)


  • Ethiopic Extended-A (AB00–AB2F)


  • Latin Extended-E (AB30–AB6F)


  • Cherokee Supplement (AB70–ABBF)


  • Meetei Mayek (ABC0–ABFF)


  • Hangul Syllables (AC00–D7AF)


  • Hangul Jamo Extended-B (D7B0–D7FF)


  • Surrogates:


    • High Surrogates (D800–DB7F)


    • High Private Use Surrogates (DB80–DBFF)


    • Low Surrogates (DC00–DFFF)




  • Private Use Area (E000–F8FF)


  • CJK Compatibility Ideographs (F900–FAFF)


  • Alphabetic Presentation Forms (FB00–FB4F)


  • Arabic Presentation Forms-A (FB50–FDFF)


  • Variation Selectors (FE00–FE0F)


  • Vertical Forms (FE10–FE1F)


  • Combining Half Marks (FE20–FE2F)


  • CJK Compatibility Forms (FE30–FE4F)


  • Small Form Variants (FE50–FE6F)


  • Arabic Presentation Forms-B (FE70–FEFF)


  • Halfwidth and Fullwidth Forms (FF00–FFEF)


  • Specials (FFF0–FFFF)




Supplementary Multilingual Plane






A map of the Supplementary Multilingual Plane. Each numbered box represents 256 code points.


Plane 1, the Supplementary Multilingual Plane (SMP), contains historic scripts (except CJK ideographic), and symbols and notation used within certain fields. Scripts include Linear B, Egyptian hieroglyphs, and cuneiform scripts. It also includes English reform orthographies like Shavian and Deseret, and some modern scripts like Osage, Warang Citi, and Adlam. Symbols and notations include historic and modern musical notation; mathematical alphanumerics; Emoji and other pictographic sets; and game symbols for playing cards, Mah Jongg, and dominoes.



As of Unicode 12.0[update], the SMP comprises the following 127 blocks:





  • Archaic Greek and Other Left-to-right scripts:


    • Linear B Syllabary (10000–1007F)


    • Linear B Ideograms (10080–100FF)


    • Aegean Numbers (10100–1013F)


    • Ancient Greek Numbers (10140–1018F)


    • Ancient Symbols (10190–101CF)


    • Phaistos Disc (101D0–101FF)


    • Lycian (10280–1029F)


    • Carian (102A0–102DF)


    • Coptic Epact Numbers (102E0–102FF)


    • Old Italic (10300–1032F)


    • Gothic (10330–1034F)


    • Old Permic (10350–1037F)


    • Ugaritic (10380–1039F)


    • Old Persian (103A0–103DF)


    • Deseret (10400–1044F)


    • Shavian (10450–1047F)


    • Osmanya (10480–104AF)


    • Osage (104B0–104FF)


    • Elbasan (10500–1052F)


    • Caucasian Albanian (10530–1056F)


    • Linear A (10600–1077F)



  • Right-to-left scripts:


    • Cypriot Syllabary (10800–1083F)


    • Imperial Aramaic (10840–1085F)


    • Palmyrene (10860–1087F)


    • Nabataean (10880–108AF)


    • Hatran (108E0–108FF)


    • Phoenician (10900–1091F)


    • Lydian (10920–1093F)


    • Meroitic Hieroglyphs (10980–1099F)


    • Meroitic Cursive (109A0–109FF)


    • Kharoshthi (10A00–10A5F)


    • Old South Arabian (10A60–10A7F)


    • Old North Arabian (10A80–10A9F)


    • Manichaean (10AC0–10AFF)


    • Avestan (10B00–10B3F)


    • Inscriptional Parthian (10B40–10B5F)


    • Inscriptional Pahlavi (10B60–10B7F)


    • Psalter Pahlavi (10B80–10BAF)


    • Old Turkic (10C00–10C4F)


    • Old Hungarian (10C80–10CFF)


    • Hanifi Rohingya (10D00–10D3F)


    • Rumi Numeral Symbols (10E60–10E7F)


    • Old Sogdian (10F00–10F2F)


    • Sogdian (10F30–10F6F)


    • Elymaic (10FE0–10FFF)




  • Brahmic scripts:


    • Brahmi (11000–1107F)


    • Kaithi (11080–110CF)


    • Sora Sompeng (110D0–110FF)


    • Chakma (11100–1114F)


    • Mahajani (11150–1117F)


    • Sharada (11180–111DF)


    • Sinhala Archaic Numbers (111E0–111FF)


    • Khojki (11200–1124F)


    • Multani (11280–112AF)


    • Khudawadi (112B0–112FF)


    • Grantha (11300–1137F)


    • Newa (11400–1147F)


    • Tirhuta (11480–114DF)


    • Siddham (11580–115FF)


    • Modi (11600–1165F)


    • Takri (11680–116CF)


    • Ahom (11700–1173F)


    • Dogra (11800–1184F)


    • Warang Citi (118A0–118FF)


    • Nandinagari (119A0–119FF)


    • Zanabazar Square (11A00–11A4F)


    • Soyombo (11A50–11AAF)


    • Pau Cin Hau (11AC0–11AFF)


    • Bhaiksuki (11C00–11C6F)


    • Marchen (11C70–11CBF)


    • Masaram Gondi (11D00–11D5F)


    • Gunjala Gondi (11D60–11DAF)


    • Makasar (11EE0–11EFF)


    • Tamil Supplement (11FC0–11FFF)




  • Mongolian Supplement (11660–1167F)


  • Cuneiform (12000–123FF)


  • Cuneiform Numbers and Punctuation (12400–1247F)


  • Early Dynastic Cuneiform (12480–1254F)


  • Egyptian Hieroglyphs (13000–1342F)


  • Egyptian Hieroglyph Format Controls (13430–1343F)


  • Anatolian Hieroglyphs (14400–1467F)


  • Bamum Supplement (16800–16A3F)


  • Mro (16A40–16A6F)


  • Bassa Vah (16AD0–16AFF)


  • Pahawh Hmong (16B00–16B8F)


  • Medefaidrin (16E40–16E9F)


  • Miao (16F00–16F9F)


  • Ideographic Symbols and Punctuation (16FE0–16FFF)


  • Tangut (17000–187FF)


  • Tangut Components (18800–18AFF)


  • Kana Supplement (1B000–1B0FF)


  • Kana Extended-A (1B100–1B12F)


  • Small Kana Extension (1B130–1B16F)


  • Nushu (1B170–1B2FF)


  • Duployan (1BC00–1BC9F)


  • Shorthand Format Controls (1BCA0–1BCAF)

  • Supplementary symbols:


    • Musical notation:


      • Byzantine Musical Symbols (1D000–1D0FF)


      • Musical Symbols (1D100–1D1FF)


      • Ancient Greek Musical Notation (1D200–1D24F)




    • Mayan Numerals (1D2E0–1D2FF)


    • Mathematical symbols:


      • Tai Xuan Jing Symbols (1D300–1D35F)


      • Counting Rod Numerals (1D360–1D37F)


      • Mathematical Alphanumeric Symbols (1D400–1D7FF)




    • Sutton SignWriting (1D800–1DAAF)




  • Glagolitic Supplement (1E000–1E02F)


  • Nyiakeng Puachue Hmong (1E100–1E14F)


  • Wancho (1E2C0–1E2FF)


  • Mende Kikakui (1E800–1E8DF)


  • Adlam (1E900–1E95F)


  • Indic Siyaq Numbers (1EC70–1ECBF)


  • Ottoman Siyaq Numbers (1ED00–1ED4F)


  • Arabic Mathematical Alphabetic Symbols (1EE00–1EEFF)

  • Game tiles and cards:


    • Mahjong Tiles (1F000–1F02F)


    • Domino Tiles (1F030–1F09F)


    • Playing Cards (1F0A0–1F0FF)




  • Enclosed Alphanumeric Supplement (1F100–1F1FF)


  • Enclosed Ideographic Supplement (1F200–1F2FF)


  • Miscellaneous Symbols and Pictographs (1F300–1F5FF)


  • Emoticons (1F600–1F64F)


  • Ornamental Dingbats (1F650–1F67F)


  • Transport and Map Symbols (1F680–1F6FF)


  • Alchemical Symbols (1F700–1F77F)


  • Geometric Shapes Extended (1F780–1F7FF)


  • Supplemental Arrows-C (1F800–1F8FF)


  • Supplemental Symbols and Pictographs (1F900–1F9FF)


  • Chess Symbols (1FA00–1FA6F)


  • Symbols and Pictographs Extended-A (1FA70–1FAFF)




Supplementary Ideographic Plane




A map of the Supplementary Ideographic Plane. Each numbered box represents 256 code points.


Plane 2, the Supplementary Ideographic Plane (SIP), is used for CJK Ideographs, mostly CJK Unified Ideographs, that were not included in earlier character encoding standards.


As of Unicode 12.0[update], the SIP comprises the following six blocks:




  • CJK Unified Ideographs Extension B (20000–2A6DF)


  • CJK Unified Ideographs Extension C (2A700–2B73F)


  • CJK Unified Ideographs Extension D (2B740–2B81F)


  • CJK Unified Ideographs Extension E (2B820–2CEAF)


  • CJK Unified Ideographs Extension F (2CEB0–2EBEF)


  • CJK Compatibility Ideographs Supplement (2F800–2FA1F)



Unassigned planes


Planes 3 to 13 (planes 3 to D in hexadecimal): No characters have yet been assigned to Planes 3 through 13. Plane 3 is tentatively named the Tertiary Ideographic Plane (TIP), but as of version 12.0 there are no characters assigned to it.[5] It is reserved for Oracle Bone script, Bronze Script, Small Seal Script, additional CJK unified ideographs, supplement characters for existing scripts, and other historic ideographic scripts.[6]


It is not anticipated that all these planes will be used in the foreseeable future, given the total sizes of the known writing systems left to be encoded. The number of possible symbol characters that could arise outside of the context of writing systems is potentially huge. At the moment, these 11 planes out of 17 are unused.



Supplementary Special-purpose Plane




A map of the Supplementary Special-purpose Plane. Each numbered box represents 256 code points.


Plane 14 (E in hexadecimal), the Supplementary Special-purpose Plane (SSP), currently contains non-graphical characters. The first block is for special use tag characters. The other block contains glyph variation selectors to indicate an alternate glyph for a character that cannot be determined by context.


As of Unicode 12.0[update], the SSP comprises the following two blocks:




  • Tags (E0000–E007F)


  • Variation Selectors Supplement (E0100–E01EF)



Private Use Area planes


The two planes 15 and 16 (planes F and 10 in hexadecimal), are designated as "private use planes". They contain blocks called Supplementary Private Use Area-A (PUA-A) and -B (PUA-B), Private Use Areas, which are available for character assignment by parties outside the ISO and the Unicode Consortium. They are used by fonts internally to refer to auxiliary glyphs, for example, ligatures and building blocks for other glyphs. Such characters will have limited interoperability. Software and fonts that support Unicode will not necessarily support character assignments by other parties.



References




  1. ^ Unicode Consortium Glossary—Supplementary Planes


  2. ^ See Table 3.5 "UTF-16 Bit Distribution" in the Unicode Standard https://www.unicode.org/versions/Unicode6.0.0/UnicodeStandard-6.0.pdf


  3. ^ See Table 3.6 "UTF-8 Bit Distribution" in the Unicode Standard https://www.unicode.org/versions/Unicode6.0.0/UnicodeStandard-6.0.pdf


  4. ^ Unicode roadmaps


  5. ^ "Unicode Data". Retrieved 17 June 2015..mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"""""""'""'"}.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:inherit;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}


  6. ^ Roadmap to the TIP









這個網誌中的熱門文章

Xamarin.form Move up view when keyboard appear

Post-Redirect-Get with Spring WebFlux and Thymeleaf

Anylogic : not able to use stopDelay()