文字コードとは(全体像)
文字コードとは、文字を、数値に対応づける決まりのことだ。コンピュータは0と1(数)しか扱えないので、「あ」や「A」といった文字に、それぞれ番号をふっておく。この番号の付け方が、文字コードだ。
主な種類は、次のとおり。
- ASCII … 英数字や記号を表す、基本的な文字コード(米国の規格)。
- Shift_JIS … 日本語を表す文字コード(Windowsで長く使われてきた)。
- Unicode … 世界中の文字を、ひとつにまとめて扱う文字コード。
そして、Unicodeを実際にどうデータにするかの代表的な方式が、UTF-8。いまのWebの標準になっている。
詳しく:UTF-8と文字化け
ここが心臓部。種類と、文字化けの原因を押さえよう。
文字コードのポイント
| 項目 | やさしい意味 |
|---|---|
| ASCII | 英数記号を表す基本の文字コード |
| Shift_JIS | 日本語を表す文字コード(Windows伝統) |
| Unicode | 世界中の文字を統一して扱う |
| UTF-8 | Unicodeの代表的な方式。現代のWeb標準 |
ここで一番のポイント。UnicodeとUTF-8は、別の階層のものだ。Unicodeは「世界中の文字に番号をふった、ひとつの大きな番号表」で、UTF-8は「その番号を、実際にどうデータ(バイト)にするかの方式の1つ」。「Unicode=UTF-8」と思い込むと誤りになる。なお、UTF-8は文字によってバイト数が変わる(1〜4バイトの可変長)。
そして、文字化け。これは、書いた側と読む側で、使う文字コードが食い違うと起きる。同じ番号表を使わないと、文字が正しく戻らないからだ。
わかりやすく言い換えると
身近なたとえで整理しよう。
文字コードは、「文字に背番号をつける決まり」のイメージ。コンピュータは数しか分からないので、文字に番号をふって扱う。
UTF-8は、「世界共通の番号表(Unicode)を、実際にデータにするときの、いまの定番のやり方」。要するに、現代のWebで広く使われている方式だ。
文字化けは、「書いた人と読む人が、ちがう番号表を使ってしまったときに起こるずれ」。つまり、文字コードが食い違うと起きる、ということだ。
試験のツボ
🔴 一番出る:文字コードの正体と種類
①文字を数値に対応づける決まり
②ASCII・Shift_JIS・Unicode(UTF-8)
🔴 次に出る:UTF-8は現代の標準
①UTF-8は、Unicodeの代表的な方式
②いまのWebの標準(バイト数は可変)
🟡 押さえると安定:文字化けの原因
①文字化けは、文字コードの食い違いで起きる
②書く側と読む側で、同じ文字コードを使う
よくある間違い
①「UnicodeとUTF-8は、まったく同じものだ」→ ✗ Unicodeは文字の番号表、UTF-8はそれをデータにする方式の1つ。階層が違う。
②「文字化けは、文字コードと関係なく、勝手に起きる」→ ✗ 文字化けは、書く側と読む側で文字コードが食い違うと起きる。
③「現代のWebの標準的な文字コードは、ASCIIである」→ ✗ 現代のWebの標準はUTF-8。ASCIIは英数記号だけの基本的な文字コード。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(文字コードの正体)
文字コードに関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
- 文字を、コンピュータが扱う数値に対応づける決まりのことである
- 完成したシステムを宣伝して、より多く売るための広告活動である
解答は 3 だぱん。
文字コードは、文字を数値に対応づける決まりなんだぱん。コンピュータは数しか扱えないから、文字に番号をふるんだぱん。
選択肢1は給与計算、選択肢2は請求書の事務、選択肢4は広告で、どれも違うぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✗ | 請求書の事務の話 |
| 3 | ✓ | 文字を数値に対応づける決まりで正しい |
| 4 | ✗ | 広告活動ではない |
オリジナル問題2(UTF-8)
UTF-8に関する次の記述のうち、最も適切なものはどれか。
- Unicodeの代表的な方式で、現代Webの標準になっている
- 社員の給与を計算することだけに使う方式だとされているものだ
- 取引先へ請求書を郵送することだけに使う方式だとされている
- すでに使われていない、古い時代だけの方式だとされているものだ
解答は 1 だぱん。
UTF-8は、Unicodeの代表的な方式で、現代のWebの標準になっているんだぱん。文字によってバイト数が変わる、可変長の方式だぱん。
選択肢2の給与、選択肢3の請求書、選択肢4の「古い時代だけ」は、いずれも違うぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | Unicodeの方式で現代の標準で正しい |
| 2 | ✗ | 給与計算の方式ではない |
| 3 | ✗ | 請求書の事務の方式ではない |
| 4 | ✗ | 現代のWeb標準である |
オリジナル問題3(文字化け)
文字化けの原因として、最も適切なものはどれか。
- 社員の給与を計算しまちがえたときに、必ず起きるとされているものだ
- 書く側と読む側とで、使う文字コードが食い違ってしまうときに起きる
- 取引先へ請求書を郵送しまちがえたときに、起きるとされているものだ
- 文字コードとは関係なく、いつも勝手に起きるとされているものである
解答は 2 だぱん。
文字化けは、書く側と読む側で、使う文字コードが食い違うときに起きるんだぱん。同じ番号表を使わないと、文字が正しく戻らないんだぱん。
選択肢1の給与、選択肢3の請求書、選択肢4の「勝手に起きる」は、いずれも違うぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算とは関係ない |
| 2 | ✓ | 文字コードの食い違いで起きるで正しい |
| 3 | ✗ | 請求書の郵送とは関係ない |
| 4 | ✗ | 文字コードの食い違いが原因 |
まとめ
押さえどころ
- 🔴 文字コード = 文字を数値に対応づける決まり。ASCII・Shift_JIS・Unicode(UTF-8)などがある。
- 🔴 UTF-8 = Unicodeの代表的な方式で、現代のWebの標準(バイト数は可変)。
- 🟡 文字化け = 書く側と読む側で、文字コードが食い違うと起きる。
次に学ぶ
- 2進数 ── 0と1で数を表す方法。文字コードも、最後は数値(2進数)で表す。
- Unicode ── 世界中の文字を統一して扱う文字コード。UTF-8は、その代表的な方式。
執筆: SikakuQuest編集部