2007/01/23 [火]
この符号方式は、他の UTF とは違い、UTF-16 の次という意味から名づけられたと思われ、UTF の 17bit 版ではありません。この変換方法の提案者は 64bit アーキテクチャ用だと主張しており、変換結果は常に 8バイト=64bit になります。
変換方法
- 次のように、U をバイナリ表現に変換します。
U の範囲 (16進) 変換された表現(バイナリ) 0000_0000 00111000 0 0 1 1 0 B20B19B18 0 0 1 1 0 B17B16B15 0 0 1 1 0 B14B13B12 0 0 1 1 0 B11B10B09 0 0 1 1 0 B08B07B06 0 0 1 1 0 B05B04B03 0 0 0 0 0 B02B01B00 0000_0001-0010_FFFF 00111000 0 0 1 1 0 B20B19B18 0 0 1 1 0 B17B16B15 0 0 1 1 0 B14B13B12 0 0 1 1 0 B11B10B09 0 0 1 1 0 B08B07B06 0 0 1 1 0 B05B04B03 0 0 1 1 0 B02B01B00
- バイナリを、変換値とします。
変換例
-
漢字 (0x226F 0x575B) →
00100010_01101111 01010111_01011011 → 変換 →
0_010_001_001_101_111 0_101_011_101_011_011 →
00111000 00110000 00110000 00110010 00110001 00110001 00110101 00110111 00111000 00110000 00110000 00110101 00110011 00110101 00110011 00110011 →
38 30 30 32 31 31 35 37 38 30 30 35 33 35 33 33 →
38303032313135373830303533353333 (このバイナリをダンプすると "8002115780053533" という ASCII 文字列に見える)
by seclan