面 (文字コード)
面(めん)、字面(じめん)、プレーン(英: 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.1) で実際に使っているのは、以下の6面である。第1面以降は追加面と呼ばれる。
- 第0面 (Plane 0): 基本多言語面 (Basic Multilingual Plane; BMP)
- 第1面 (Plane 1): 追加多言語面 (Supplementary Multilingual Plane; SMP)
- 第2面 (Plane 2): 追加漢字面 (Supplementary Ideographic Plane; SIP)
- 第3面 (Plane 3): 第三漢字面 (Tertiary Ideographic Plane; TIP)
- 第14面 (Plane 14): 追加特殊用途面 (Supplementary Special‐purpose Plane; SSP)
- 第15-16面 (Plane 15-16): 私用面
第4-13面についてはどういう目的で使用するのかすら決まっておらず、「将来の標準化のために保留されている。」とされている。
基本多言語面
[編集]基本多言語面 (BMP) は、UCS-4およびUnicodeの最初の面であり、最初の65536の符号位置000016-FFFF16からなる。また、UCS-2の唯一の面であり、Unicode 3.1以前の唯一の面だった。UTF-16ではサロゲートペア(代用対)を使わずに2バイトで表せ、UTF-8では3バイト以内で表せる。
BMPには、通常使われる文字のほとんどが収録されている。
追加多言語面
[編集]追加多言語面 (SMP) には、以下のようなスクリプトが収録されている。
追加漢字面
[編集]追加漢字面 (SIP) には、BMPに入りきらなかった漢字が収録されている。
日本でよく知られたものとしては、𠮷(吉野家の吉)、𥝱 (1024) がある。
第三漢字面
[編集]第三漢字面 (TIP) には、SIPに入りきらなかった漢字及び古代の漢字が収録されている。
追加特殊用途面
[編集]追加特殊用途面 (SSP) には、書式制御文字が収録されている。
言語タグはテキストにそれが何語かという言語情報を付けるものである。
異体字セレクタについては基本多言語面にもあるが、漢字の場合このSSPにあるものを使う。
私用面
[編集]Unicodeでは、第15-16面が(BMPのE00016-F8FF16に加え)、当事者間の私的な合意によって文字を定義できる私用領域とされている。
ISO/IEC 10646ではさらに第0群第224-255面と第96-127群が私用領域とされていたが、2002年の改訂で削除され、Unicodeと同等になった。
予約された面
[編集]ISO/IEC 10646では、第0群第17-223面と第1-95群は将来の標準化のために予約されていた。2006年の改訂で、Unicodeで使用できない第0群第17面以降と第1群以降は全て永久に予約された面および群となり、文字が定義されないことになった。
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かA016-FF16のいずれかのこともある)しか使えないからである。
ただし、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水準文字が収録されている。ただし、EUC-JPや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面を単位として、各種の異字体が収録されている。
TRONコードの面
[編集]TRONコードにも「面」が存在する。TRONコードでは各面をスクリプトと呼んでいる。TRONコードの面は31面から構成されている。
- 第1面 JIS X 0208、X 0213、X 0212、GB 2312、KS X 1001、六点点字、八点点字
- 第2-3面 GT書体
- 第4-5面 予約
- 第6面 Big5 CNS 11643第1面、第2面
- 第7面 予約
- 第8面 大漢和辞典修訂二版本巻収録文字(1)
- 第9面 大漢和辞典修訂二版本巻収録文字(2)、辞典修訂二版補巻収録文字、記号類(濁点付きひらがな・カタカナ、住民基本台帳収録変体仮名、変体仮名、iモード絵文字、ホツマ文字、陰陽五行文字、序数記号、アーヴ文字等)
- 第10面 中国伝承文字、少数民族文字等(トンパ文字等)
- 第11-15面 欠番[1]
- 第16-17面 Unicode(漢字及びハングルは含まない)
- 第18-21面 予約
- 第22-23面 中国拡張文字GB18030
- 第24-31面 予約
TRONコードの初期の版では第1面のみを使用することが出来た。第1面のみでTRONコードの主要な目的である多言語環境をある程度実現することが出来るように日本・中国・韓国の一通りの文字が収録されており、第1面には「とりあえず多言語面」という別名が付けられていた。