Unicode文字列をUTF-8でエンコードすると、各文字のエンコード結果の先頭バイトは2進表示が0又は11で始まり、それ以降のバイトは10で始まる。
16進表示された次のデータは何文字のUnicode文字列をエンコードしたものか。
CF 80 E3 81 AF E7 B4 84 33 2E 31 34 E3 81 A7 E3 81 99
ア | 9 |
イ | 10 |
ウ | 11 |
エ | 12 |
答え ア
【解説】
問題文の「Unicode文字列をUTF-8でエンコードすると、各文字のエンコード結果の先頭バイトは2進表示が0又は11で始まり、それ以降のバイトは10で始まる。」から、各バイトを2進表示にした時に0又は11で始まるデータの数が元もデータの数を表している。
0で始まるデータは16進表示に数と0〜7になり、11から始まるデータはC〜Fになるので、『CF 80 E3 81 AF E7 B4 84 33 2E 31 34 E3 81 A7 E3 81 99』から、このデータを探すと1番目の「CF」、3番目の「E3」、6番目の「E7」、9番目の「33」、10番目の「2E」、11番目の「31」、12番目の「34」、13番目の「E3」、16番目の「E3」の9個(ア)であることがわかる。
【キーワード】
・Unicode
・UTF-8