平成24年 春期 応用情報技術者 午前 問4

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

キーワードの解説
  • Unicode(UCS-2)
    Unicodeはコンピュータ上で扱う全ての多言語の文字を単一の文字コードで取り扱うために考え出された文字コード。
    元々16ビット(2バイト)の文字集合で全ての文字の網羅を目指して開発され、Microsoft Windows(NT以降)、Mac OS X、LinuxやJavaなどの内部コードとして利用されています。
    UCS(Universal Coded-Character Set)-2は、2バイト固定の文字コードでUnicodeと同じです。
  • UTF-8
    Unicode(UCS-2やUCS-4)の文字コードを8ビットの倍数のデータ(バイト列)で表現できるように変換する方式です。

もっと、「UTF-8」について調べてみよう。

戻る 一覧へ 次へ