UTF-32
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Unicode |
---|
符号化方式 |
UCS |
マッピング |
書字方向 |
BOM |
漢字統合 |
UnicodeとHTML |
Unicodeと電子メール |
Unicodeフォント |
UTF-32およびUCS-4は、各Unicodeコードポイントにちょうど32ビットの固定長を使う、Unicode文字の符号化方式の代替名である。他のUnicode変換形式 (Unicode transformation format)はすべてコードポイントによって長さが変化する可変長の符号化方式であるため、UTF-32はもっとも単純な符号化形式であるとみなせる。
しかしながら、UTF-32はすべての文字に4バイトを使用するので、空間効率が非常に悪い。とくに、BMP外の文字はほとんどの文章で出現することは非常にまれであるため、サイズについて議論するときは存在しないものとみなせる。つまり、UTF-32は一般に他のエンコーディングより少なくとも2倍大きくなり、ときには4倍大きくなる。
加えて、コードポイントごとに固定のバイト数は一見便利に見えるかもしれないが、実際にはあまり使用されていない。文字列を途中で切り落とすのは多少簡単になるが、UTF-8やUTF-16と比べてそれほど重大ではない。文字列の表示幅の計算も、非常に限られた場合を除いて全く簡単にはならない。なぜならば「固定幅」フォントを使った場合でさえ、文字位置ごとに複数のコードポイントが存在するかもしれないし (結合文字など)、実際コードポイントごとに複数の文字位置を使うかもしれない (CJK漢字など)。結合文字があるので、エディタは1つのコードポイントを編集時の一単位とみなすこともできない。
これらの理由からUTF-32は現実にはほとんど使われず、UTF-8やUTF-16がUnicode文書の通常の符号化方式として使われている。
[編集] 歴史
最初のISO 10646規格はUCS-4と呼ばれる31-bitの符号化形式を定義していた。この形式では、国際符号化文字集合 (UCS) に含まれるおのおのの符号化された文字は32ビットで扱いやすい、整数0から十六進数7FFFFFFFの符号空間中の符号値で表現される。
UCS-4は1114112個 (= 220+216) のコードポイントを持ち、そのため十六進数で10FFFFまでしか必要としないUnicode符号空間のすべてを表現するのに十分である。比較的小さなコードポイントの集合へのマッピングのためにそのように大きな符号空間を予約するのは浪費だと考える者がいるので、新しい符号化形式UTF-32が提案された。UTF-32はUCS-4の部分集合で、32ビットの符号値を0から10FFFFの符号空間の範囲でのみ使用する。
UTF-32は最初はUCS-4規格の部分集合だったが、ISO/IEC JTC 1/SC 2/WG 2の方針と手続きの文書は、すべての将来の文字割り当てはBMPか最初の14の補助面に制限され、かつて60から7Fまでの群とE0からFFまでの面に割り当てられていた私用の符号位置は削除されたと述べている。
[編集] 関連項目
- Unicodeエンコーディングの比較
[編集] 外部リンク
- The Unicode Standard 4.1, chapter 3 - §3.10, D43-D45にUTF-32の公式な定義
- Unicode Standard Annex #19 - Unicode 3.xにおけるUTF-32の公式な定義 (2001年3月; 最終更新2002年3月)
- Registration of new charsets: UTF-32, UTF-32BE, UTF-32LE - UTF-32がIANA charset登録簿に追加されたことの告知 (2002年4月)