2000/11/17 [金]
UTF-1 への変換方法は次の通りです。ただし U を UCS または Unicode のコードポイントを表すことにします。また Bxx という表現は左にある U の xx ビット目の値をあらわしています。数字の中の _ は見やすくするために便宜上挿入した記号です。
変換方法
- 次の関数 T を定義します。
z T(z) 0x00-0x5D z + 0x21 0x5E-0xBD z + 0x42 0xBE-0xDE z - 0xBE 0xDF-0xFF z - 0x60
- 次のように、U をバイナリ表現に変換します。
U の範囲 (16進) 変換された表現(バイナリ) 0000_0000-0000_009F B07B06B05B04B03B02B01B00 0000_00A0-0000_00FF 0xA0 B07B06B05B04B03B02B01B00 0000_0100-0000_4015 0xA1+y/0xBE T(y%0xBE)
ただし y = U - 0000_01000000_4016-0003_8E2D 0xF6+y/0xBE2 T(y/0xBE%0xBE) T(y%0xBE)
ただし y = U - 0000_40160003_8E2E-7FFF_FFFF 0xFC+y/0xBE4 T(y/0xBE3%0xBE) T(y/0xBE2%0xBE) T(y/0xBE%0xBE) T(y%0xBE)
ただし y = U - 0003_8E2E
変換例
-
漢字 (0x226F 0x575B) → 変換 →
0xA1+0x216F/0xBE T(0x216F%0xBE) 0xF6+0x1745/0xBE2 T(0x1745/0xBE%0xBE) T(0x1745%0xBE) →
0xCE 0x4E 0xF6 0x40 0x64 →
CE4EF64064
by seclan