文字のデジタル表現|文字コード(ASCII・Unicode)と文字化けの仕組み

公開 2026年11月8日

コンピュータは数しか扱えないので、文字も**番号(数値)に置き換えて記録しています。この「文字と番号の対応表」が文字コード**です。共通テストでは、文字コード表を読み取る問題や、文字の種類から必要なビット数を求める問題が出ます。

文字コードの考え方

文字コードは、一つひとつの文字に番号を割り当てたものです。例えば ASCII では、「A」は10進数の65(16進数の41、2進数の 01000001)です。

キーボードで「A」を押すと、コンピュータの中では 01000001 というビット列が記録されます。画面に表示するときは、その番号に対応する文字の形(フォント)を描きます。

ASCII(アスキー)

ASCII は、英字・数字・記号などを7ビットで表す文字コードです。7ビットなので、27 = 128種類の文字を表せます。実際のコンピュータでは、1バイト(8ビット)単位で扱います。

ASCIIの表は、16進数で「上位の桁(列)」と「下位の桁(行)」を組み合わせて読みます(一部を抜粋)。

下位\上位 2 3 4 5 6 7
0 (空白) 0 @ P ` p
1 ! 1 A Q a q
2 “ 2 B R b r
3 # 3 C S c s
4 $ 4 D T d t

表の規則性に気づくと、表にない文字の番号も推測できます。例えば「A」が41なら、「E」は4つ後の 45 です。

日本語の文字コード

日本語には、ひらがな・カタカナ・漢字など数千種類以上の文字があるので、1バイト(256種類)では足りません。そこで、2バイト以上を使う文字コードがあります。

文字コード 特徴
Shift_JIS 日本語を2バイトで表す。古いWindowsのファイルなどで使われてきた
EUC-JP 日本語を主に2バイトで表す。古いUNIX系のシステムで使われてきた
Unicode(UTF-8) 世界中の文字を一つの体系で表す。UTF-8では英数字は1バイト、日本語の多くは3バイト。現在のWebの標準

必要なビット数の求め方

n ビットで表せる種類は 2n 通りです。表したい文字の種類以上になる最小の n を探します。

例: 7,000種類の文字に番号を付けるには、少なくとも何ビット必要か。

ビット数 表せる種類 7,000以上か
12 212 = 4,096 ×
13 213 = 8,192 ○

答えは 13ビットです。210 = 1,024 を覚えておくと、213 = 1,024 × 8 = 8,192 のようにすばやく計算できます。

文字化けが起きる理由

文字化けは、文字を保存したときと読み込むときで、違う文字コードを使ったために起きます。同じビット列でも、対応表が違えば別の文字として表示されてしまうからです。

例: UTF-8で保存した日本語の文章を Shift_JIS として開くと、UTF-8では1文字分の3バイトが、Shift_JISの別の文字の組合せとして読まれてしまい、意味の分からない漢字や記号が並びます。

対策は、ファイルを開くときに正しい文字コードを指定することです。Webページでは、HTMLの中で使っている文字コード(UTF-8など)を宣言します。

フォントの種類

文字の形のデータをフォントといいます。

種類 表し方 拡大したとき
ビットマップフォント 文字の形を点(ドット)の集まりで表す ギザギザになる
アウトラインフォント 文字の輪郭を座標と曲線で表す なめらかなまま

画像のラスタ形式とベクタ形式の違いと同じ考え方です(「画像と音のデジタル化」)。

共通テストでの出題

よくある間違い

まとめ

確認問題

問題を準備しています…

関連する用語