Unicodeの𩸽をUTF-16で求める
4バイトになるパターン(
サロゲートペア
)
𩸽
は
U+29E3D
UTF-16では
0xD867DE3D
(
ビッグエンディアン
)
リトルエンディアン
だと
0x67D83DDE
UTF-16の求め方
で実際に求めてみる
1. 符号化したい文字の符号位置を
0x29E3D
とする
2. 符号位置
0x29E3D
の上限を
0x10FFFF
とする
2.1.
0x29E3D
<
0x10000
ではないので次へ
2.2.
n
>=
0x10000
なら以下のルールに従って
サロゲートペア
を求める
n1
=
0x29E3D
-
0x10000
=
0x19E3D
=
1 10011110 00111101
=
0001100111 1000111101
... (10桁ずつに揃える)
w1
=
0xD800
+
00 01100111
=
11011000 00000000
+
00 01100111
=
11011000 01100111
=
0xD867
w2
=
0xDC00
+
10 00111101
=
11011100 00000000
+
10 00111101
=
11011110 00111101
=
0xDE3D
0xD867
が
上位サロゲート
、
0xDE3D
が
下位サロゲート