符号面
出典: フリー百科事典『ウィキペディア(Wikipedia)』
符号面(ふごうめん)、字面(じめん)、面(めん)、プレーン (plane) とは、マルチバイト文字符号化体系において、下位から第3バイト(およびそれより上位バイト)で特定される、符号空間の一部分である。
目次 |
[編集] Unicodeの面
群 | 面 | 区 | 点 |
---|---|---|---|
0~127 | 0~255 | 0~255 | 0~255 |
ISO/IEC 10646では、面は、UCS-4の符号空間を分割したものである。
UCS-4では、文字は4オクテット(4バイト)で表され、上位から群オクテット、面オクテット、区オクテット、点オクテットと呼ぶ。群オクテットで群を、面オクテットで面を、区オクテットで区を、点オクテットで点を指定し、各点に符号化文字がマッピングされる。符号空間は第0~127の128群に、各群は第0~255の256面に、各面は第0~255の256区に、各区は第0~255の256点に分かれる。つまり、符号空間は32768面からなり、各面は65536点からなる。なお、UCS-4は31ビットからなるので、群オクテットは実際は7ビットしかなく、群の数は256ではなく128となる。
面 | 区 | 点 |
---|---|---|
0~16 | 0~255 | 0~255 |
Unicodeでは、これらのうち、第0群第0~16面のみを使うことができる。これは、UTF-16で表せる符号点が、000016~10FFFF16に限られるためである(1016 = 16)。そのため、Unicodeの符号空間を分割する最初の単位は、群ではなく面である。
現在のUnicode (Unicode 5.0) で実際に使っているのは、以下の6面である。
- 第0面 (Plane 0): 基本多言語面 (Basic Multilingual Plane; BMP)
- 第1面 (Plane 1): 補助多言語面 (Supplementary Multilingual Plane; SMP)
- 第2面 (Plane 2): 補助漢字面 (Supplementary Ideographic Plane; SIP)
- 第14面 (Plane 14): 補助特殊用途面 (Supplementary Special‐purpose Plane; SSP)
- 第15~16面 (Plane 15-16): 私用面
[編集] 基本多言語面
- 詳細は基本多言語面を参照
基本多言語面 (BMP) は、UCS-4およびUnicodeの最初の面であり、最初の65536の符号点000016~FFFF16からなる。また、UCS-2の唯一の面であり、Unicode 3.1以前の唯一の面だった。UTF-16ではサロゲート・ペアを使わずに2バイトで表せ、UTF-8では3バイト以内で表せる。
BMPには、通常使われる文字のほとんどが収録されている。
[編集] 補助多言語面
補助多言語面 (SMP) には、以下のようなスクリプトが収録されている。
[編集] 補助漢字面
補助漢字面 (SIP) には、BMPに入りきらなかった漢字が収録されている。
よく知られたものとしては、𠮷(吉野家の吉)、𥝱(1024)がある。
[編集] 補助特殊用途面
補助特殊用途面 (SSP) には、書式制御文字が収録されている。
現在は、言語タグのみが定義されている。
[編集] 私用面
Unicodeでは、第15~16面が(BMPのE00016~F8FF16に加え)、当事者間の私的な合意によって文字を定義できる私用領域とされている。
ISO 10646ではさらに、第0群第224~255面と、第96~127群が、私用領域に加わる。
[編集] 予約された面
ISO 10646では、第0群第17~223面と、第1~95群は、将来の標準化のために予約されている。これにより、Unicodeで使用できない第0群第17面以降は全て、私用面か予約された面となり、文字が定義されないことになった。
[編集] ISO 2022準拠の文字集合の面
面 | 区 | 点 |
---|---|---|
1~2 | 1~94 | 1~94 |
JIS X 0213・CNS 11643・CCCIIなどの、ISO/IEC 2022 (ISO 2022) 準拠の巨大な符号化文字集合(必ずしも文字符号化体系ではない)では、各文字を3つ組の整数で表し、3つの整数それぞれで、面、区、点を決める。区と点を併せて区点と呼ぶ。
面・区・点は、通常、それぞれ1バイトで符号化されるが、2116~7E16の値のみを取る(JISではこれらを1~94で表す)。これは、ISO 2022では、図形文字(制御文字以外の文字)は2116~7E16(またはA116~FE16)しか使えないからである(ただし、2016~7F16のこともある)。
ただし、JIS X 0213・CNS 11643の面は特殊な方法で符号化される。これらの各面は、ISO 2022では別個の2バイト文字集合として扱われ、エスケープ・シーケンスで切り替えられる。その後、区点のみが通常の方法で2バイトに符号化される。なお、JIS X 0213もCNS 11643も、面は第1面から数える。
なお、これらの文字集合ほど大きくないJIS X 0208などでは区点のみが使われ、さらに小さいASCIIなどでは点(とは呼ばないがそれに相当する1バイト)のみが使われる。さらに巨大なDIS 10646(ISO 10646のドラフト。ISO 2022準拠だった)では、群・面・区・点が使われる予定だった。
JIS X 0213は、JIS X 0208を拡張した文字集合である。2面からなり、第1面にはJIS X 0208の文字(第1・2水準文字)と第3水準文字が収録され、第2面には第4水準文字が収録されている。ただし、Shift JISとの互換性を保つため、第2面のほとんどには文字が定義されていない。
CNS 11643は、Big5の文字をISO 2022準拠に並び替え、拡張したものである。1986年に制定された当初は、2面からなり、Big5の文字が収録されていた。その後、1988年に第14面が一時的に追加され、1992年に第2~7面が追加された(第14面は廃止された)。規格上は16面まで拡張可能である。
CCCIIは、第2116~2616面(第2116面から数える)に繁体字が収録され、それぞれの簡体字が第2716~2C16面の対応する符号点に収録されている。以後、6面を単位として、各種の異字体が収録されている。