seclan のほえほえルーム

| |

Unicode: UTF-18 への変換方法

・
2007/01/21 []

PDP-10 などの計算機では、マシンワードが 36bit なので、主に 8bit が単位の既存の UTF-8、UTF-16、UTF-32 では、36 の約数ではないので、無駄なビットが出てしまい、効率がよくありません。そこで 36bit の約数である 9bit 単位の nonet ごとに処理するのが適切になります。それを口実に、2005 年のジョーク RFC (RFC4042) として提案されたのが UTF-9 と UTF-18 です。ここでは、UTF-18 についての変換方法を説明します。なお、UTF-18 は UTF-9 とは違い、0x2FFFF までのコードポイント、及び 0xE0000-0xEFFFF までのコードポイントしか扱うことができません。

UTF-18 への変換方法は次の通りです。ただし U を UCS または Unicode のコードポイントを表すことにします。また Bxx という表現は左にある U の xx ビット目の値をあらわしています。数字の中の _ は見やすくするために便宜上挿入した記号です。

変換方法

  1. 次の表を用いて、U をバイナリ表現に変換します。
    U の範囲 (16進) 変換された表現(バイナリ)
    0000_0000-0002_FFFF B17B16B15B14B13B12B11B10B09   B08B07B06B05B04B03B02B01B00
    000E_0000-000E_FFFF 1 1 B15B14B13B12B11B10B09   B08B07B06B05B04B03B02B01B00

  2. バイナリを、変換値とします。

変換例

  • 漢字 (0x226F 0x575B) → 
    00100010_01101111 01010111_01011011 → 変換 → 
    00_00100010_01101111 00_01010111_01011011 → 
    00226F00575B


by seclan

関連


| |

 

配信

8.12 msec