DE-S28|情報Ⅰ 対策問題
UTF-8では英数字が1文字1バイト、ひらがな・漢字が1文字3バイトで表されることが多い。「ABC情報」という5文字のデータ量はどれか。
解答・解説を見る
正解: 1
正答
1
この問題のポイント
UTF-8の可変長符号化とデータ量 を問う問題です。文字の種類ごとにバイト数を分けて数えるのがコツです。
解説
UTF-8は、世界中の文字を集めたUnicodeをバイト列で表す符号化方式で、現在のWebで最も広く使われています。特徴は文字によってバイト数が変わる可変長であること。英数字はASCIIと同じ1バイトのまま(ASCII互換)、ひらがな・漢字は3バイト程度で表されることが多い、という使い分けです。
文字の種類ごとに分けて計算します。
- 英字「A」「B」「C」= 1バイト × 3文字 = 3バイト。
- 漢字「情」「報」= 3バイト × 2文字 = 6バイト。
- 合計 = 3 + 6 = 9バイト。
ここから得るべき教訓は「文字数 = バイト数とは限らない」ということです。5文字だから5バイト、とはならないのがUTF-8です。英語圏の文書は小さく、日本語文書は同じ文字数でも約3倍になる、という実感も持っておきましょう。
共通テストでは、英数字と日本語が混在した文字列のバイト数を数えさせる形や、「同じ文章でも文字コードによってデータ量が変わる」ことの理解を問う形で出題されます。問題文に与えられた「1文字何バイト」の条件を、文字種ごとに正確に適用することが全てです。
選択肢の確認
1.○ 英字3文字×1バイト + 漢字2文字×3バイト = 9バイト。
2.× 5バイトは全部を1バイトと誤解した値(文字数=バイト数という思い込み)。
3.× 15バイトは全部を3バイトと誤解した値。英数字は1バイト。
4.× 6バイトは漢字の6バイトだけ数えて、英字3文字分の3バイトを足し忘れた値。
ここだけは覚えよう
UTF-8は可変長: 英数字1バイト、日本語約3バイト — 文字種ごとに分けて数える。文字数=バイト数ではない。