サロゲートペア
当初2 byteの範囲で文字を表現していたUnicodeでは領域が足りなくなった 未使用の領域を使い、4 byteで文字を表現する手段が考案された。これをサロゲートペアという
上位サロゲート:0xD800 - 0xDBFF $ 2^{10}通り
下位サロゲート:0xDC00 - 0xDFFF $ 2^{10}通り
この結果、$ 2^{10} \times 2^{10} 通りの文字が追加できるようになった
従来では未使用の領域を使っているので互換性もある
エンコーディングした後の文字は5 文字(16進数)で表現する
例:U+1F469
最終的に4 byteに変換する
例
U+1D306 tetragram for centre (𝌆), can only be encoded in UTF-16 using two 16-bit code units: 0xD834 0xDF06.
This is called a surrogate pair. Note that a surrogate pair only represents a single character.
問題点
エンディアンをしらないとデコードできない
参考