スポンサーリンク

UTF2(4) FreeBSD カーネルインタフェースマニュアル UTF2(4)

名称

utf2 − ユニバーサル文字集合変換フォーマットによる文字のエンコーディング

書式

ENCODING "UTF2"

解説

UTF2 エンコーディングは、 X-Open が提案した多バイト FSS-UCS-TF (File System Safe Universal Character Set Transformation Format) エンコーディン グに基づいており、 Bell Labs Plan 9 で使われているものと同様のもので す。このエンコーディングは 16 bit 以上を表すことができますが、現在の実装 では Unicode Standard によって定義されている 16 bit までに制限されていま す。

UTF2 による表現は ASCII の上位互換ですので、 0x00-0x7f は ASCII 文字集合 に当てはまります。 0x0080 から 0xffff までの文字の多バイトエンコーディン グは、全体が高位ビットがセットされたバイトで構成されています。実際のエン コーディングは次の表によって表されています:

[0x0000 - 0x007f] [00000000.0bbbbbbb] -> 0bbbbbbb
[0x0080 - 0x07ff] [00000bbb.bbbbbbbb] -> 110bbbbb, 10bbbbbb
[0x0800 - 0xffff] [bbbbbbbb.bbbbbbbb] -> 1110bbbb, 10bbbbbb, 10bbbbbb

ある値に対して 1 つ以上の表現が存在する場合には (例えば 0x00 と 0xC0 0x80 と 0xE0 0x80 0x80)、常に最も短い表現が使われます。 (ただし長い表現のもの も正しくデコードされるでしょう。)

X-Open は最終的な 3 つのエンコーディングを用意しています:

[00000000.000bbbbb.bbbbbbbb.bbbbbbbb] ->

11110bbb, 10bbbbbb, 10bbbbbb, 10bbbbbb

[000000bb.bbbbbbbb.bbbbbbbb.bbbbbbbb] ->

111110bb, 10bbbbbb, 10bbbbbb, 10bbbbbb, 10bbbbbb

[0bbbbbbb.bbbbbbbb.bbbbbbbb.bbbbbbbb] ->

1111110b, 10bbbbbb, 10bbbbbb, 10bbbbbb, 10bbbbbb, 10bbbbbb

これらは提案されている完全な ISO-10646 31 bit Standard のために用意されて いますが、現在は実装されていません。

関連項目

mklocale(1), setlocale(3)

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク