基礎 情報・IT• 学習時間の目安:約11分

文字コード:文字を番号で表すルール

🔑 一言でいうと

文字コードは、文字に番号(数値)を割り当てたルールです。コンピュータは 0 と 1 しか扱えないので、文字も番号に変換して記憶します。英数字向けの ASCII(A=65)や、世界中の文字と絵文字を表せる Unicode(UTF-8)があります。

このページで学べること

  • 文字コードが何のためにあるかがわかる
  • ASCIIとUnicode/UTF-8のちがいがわかる
  • 文字化けが起きるしくみがわかる
  • 全角と半角が別の文字だと理解できる

前提知識

  • 2進数
  • コンピュータの基本

なぜ文字を番号にするのか

コンピュータは電気のオン/オフ、つまり 0 と 1 しか扱えません。そこで文字にも番号を割り当て、その番号を2進数で記憶します。この「文字↔番号」の対応表が 文字コードです。

💡 代表的な文字コード
  • ASCII:半角の英数字・記号が中心(A=65、a=97、0=48)。
  • Unicode/UTF-8:世界中の文字+絵文字を1つの体系で表せる。今のWebの標準。

文字を番号にすることを エンコード、番号を文字に戻すことを デコードといいます。保存と表示で文字コードがちがうと、別の文字に変換されて 文字化けになります。

🤔 なぜ日本語1文字は1バイトで足りないのか

1バイト(8ビット)で表せるのは 256通りです。半角の英数字と記号なら、大文字26+小文字26+数字10+記号などで十分におさまります。

ところが日本語は、ひらがな・カタカナ・漢字だけで数千文字以上あります。256通りではまったく足りないので、1文字に複数バイトを使います(UTF-8 では日本語1文字が3バイト、絵文字は4バイトのことが多い)。「文字数=バイト数」が成り立つのは半角英数字だけで、日本語では成り立ちません。文字数の制限とファイルサイズがずれるのは、このためです。

図でイメージする

A 番号に 65(ASCII) 2進数で記憶 01000001
文字「A」は、ASCII で番号 65 にあたり、コンピュータの中では2進数 01000001 として記憶されます。

例題(くわしい手順)

例題1:文字化けが起きるしくみ

「文字化け」がなぜ起きるのかを、順に見てみます。

🧭 手順
  1. 保存:文字を、ある文字コードのルールで番号に変換して記録する(エンコード)。
  2. 表示:番号を文字コードのルールで文字に戻す(デコード)。
  3. ズレ:保存時と表示時で文字コードがちがうと、同じ番号でも別の文字になり 文字化けする。
  4. 確かめる:保存と表示で同じ文字コードを使えば、番号は必ず同じ文字に戻ります。ズレたときだけ別の文字になります。

文字化けを防ぐには、保存も表示も UTF-8 でそろえるのが基本です。

例題2:文字数とバイト数を数える

UTF-8 で「ABC日本」を保存すると、文字数とバイト数はそれぞれいくつですか(日本語1文字は3バイトとします)。

🧭 手順
  1. 文字数を数える:A・B・C・日・本 で 5文字です。
  2. 半角のバイト数:ABC は1文字1バイトなので 3バイト。
  3. 日本語のバイト数:3 × 2 = 6 バイト(1文字3バイト × 2文字)。
  4. 合計する:3 + 6 = 9 バイト。文字数は5、バイト数は9です。

文字数とバイト数は一致しません。「20文字まで」という制限と「20バイトまで」という制限は、日本語ではまったく別の意味になります。

ASCIIとUnicode(UTF-8)の違い

ASCIIとUnicode(UTF-8)の違い
文字コード表せる文字特徴
ASCII半角の英数字・記号(128種類)1文字が1バイト。古くからある
Unicode/UTF-8世界中の文字+絵文字1文字が1〜4バイトの可変長。今の標準

日本語や絵文字を扱うなら Unicode(UTF-8)。ASCIIはその一部(英数字)を含んでいます。

よくある間違い

⚠️ 間違い①:全角と半角を同じ文字と思う

「A」(全角)と「A」(半角)は別の文字で、ちがう番号を持ちます。パスワードや検索で区別されます。

⚠️ 間違い②:文字数=バイト数と思う

UTF-8では日本語1文字が3バイトになることが多く、文字数とバイト数は一致しません。

⚠️ 間違い③:文字化け=データが壊れた、と思う

多くの文字化けは文字コードの指定ちがいが原因で、正しい文字コードで開けば元に戻ることがあります。

練習問題

まず自分で解いてから解説を開きましょう。

基本1

文字化けが起きる主な原因は何ですか。

次から選びましょう

解答・解説を見る

答え:文字コードの不一致

保存時と表示時で文字コードがちがうと、番号が別の文字に変換されて文字化けします。

つまずいたら → 「保存と表示で文字コードがちがうと文字化けする」(本ページ 例題1)に戻りましょう。

基本2

半角の「A」がASCIIで65のとき、「B」「C」の番号はいくつですか。

次から選びましょう

解答・解説を見る

答え:66、67

ASCIIではA・B・Cが連続した番号(65・66・67)になっています。

つまずいたら → 「ASCII では A=65 から1ずつ増える」(本ページ なぜ文字を番号にするのか)に戻りましょう。

応用

日本語や絵文字を1つの体系で表せる文字コードは何ですか。

次から選びましょう

解答・解説を見る

答え:Unicode(UTF-8)

Unicodeは世界中の文字と絵文字に番号を割り当てた体系で、UTF-8はその代表的な保存方式です。

つまずいたら → 「世界中の文字を1つの体系で表すのが Unicode」(本ページ なぜ文字を番号にするのか)に戻りましょう。

応用2

「A」(全角)と「A」(半角)は同じ文字といえますか。

次から選びましょう

解答・解説を見る

答え:いえない(別の文字)

見た目は似ていても番号が異なる別の文字です。検索やパスワードでは区別されます。

つまずいたら → 「全角と半角は番号がちがう別の文字」(本ページ よくある間違い①)に戻りましょう。


よくある質問

Q. 文字コードとは何ですか?

文字にコンピュータが扱える番号を割り当てたルールです。たとえばASCIIでは半角の「A」は65、「B」は66という番号になっています。

Q. 文字化けはなぜ起きるの?

保存したときと表示するときで文字コードがちがうと、番号が別の文字に変換されて文字化けが起きます。UTF-8で統一すると防げます。

Q. UTF-8とShift_JISはどちらを使えばよいですか?

いまはUTF-8が標準です。世界中の文字を1つの方式で表せるので、文字化けが起きにくくなります。古いファイルではShift_JISが使われていることがあります。

Q. 絵文字も文字コードで決まっているのですか?

はい。Unicodeに番号が割り当てられています。端末によって見た目の絵はちがっても、同じ番号の文字として送られています。

次に学ぶ内容

📚 参考・監修方針

高校「情報I」・IT基礎の範囲を参照し、オリジナルに作成(実在試験問題の転載はありません)。正確性は編集方針にそって確認しています。

最終更新日:• 最終確認日:• このページの誤りを報告する