seclan のほえほえルーム

| |

UTF-1 への変換方法

・
2000/11/17 []

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

変換方法

  1. 次の関数 T を定義します。
    z T(z)
    0x00-0x5Dz + 0x21
    0x5E-0xBDz + 0x42
    0xBE-0xDEz - 0xBE
    0xDF-0xFFz - 0x60

  2. 次のように、U をバイナリ表現に変換します。
    U の範囲 (16進) 変換された表現(バイナリ)
    0000_0000-0000_009FB07B06B05B04B03B02B01B00
    0000_00A0-0000_00FF0xA0  B07B06B05B04B03B02B01B00
    0000_0100-0000_40150xA1+y/0xBE  T(y%0xBE)
    ただし y = U - 0000_0100
    0000_4016-0003_8E2D0xF6+y/0xBE2  T(y/0xBE%0xBE)  T(y%0xBE)
    ただし y = U - 0000_4016
    0003_8E2E-7FFF_FFFF0xFC+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

関連


| |

 

配信

4.49 msec