Unicode文字列をUTF-8でエンコードすると、各文字のエンコード結果の先頭バイトは2進表示が0又は11で始まり、それ以降のバイトは10で始まる。16進数表示された次のデータは何文字のUnicode文字列をエンコードしたものか。
ア | 9 |
イ | 10 |
ウ | 11 |
エ | 12 |
UTF-8では、文字を1~6バイトの長さにエンコードする。各文字の先頭バイトは2進表示が0または11で始まり、2バイト目以降がある場合はそれらのバイトは10で始まる。
問題文の「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個である。
したがって、アが正解である。