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)