面 (文字コード)

符号化文字集合の単位

(めん)、字面(じめん)、プレーン: plane)とは、マルチバイト文字符号化方式において、下位から第3バイト(およびそれより上位バイト)で特定される、符号空間の一部分である。

Unicodeの面

編集
ISO 10646の符号空間
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となる。

Unicodeの符号空間
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準拠の文字集合の面

編集
JIS X 0213の符号空間
1-2 1-94 1-94

JIS X 0213CNS 11643CCCIIなどの、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 0213CNS 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-JPShift_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面から構成されている。

TRONコードの初期の版では第1面のみを使用することが出来た。第1面のみでTRONコードの主要な目的である多言語環境をある程度実現することが出来るように日本・中国・韓国の一通りの文字が収録されており、第1面には「とりあえず多言語面」という別名が付けられていた。

脚注

編集
  1. ^ 第11面から第15面までは当初今昔文字鏡の文字が割り当てられていたが、ライセンスの問題で削除されたため現在は欠番扱いになっている。