文字コード:文字を番号で表すルール
文字コードは、文字に番号(数値)を割り当てたルールです。コンピュータは 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の標準。
文字を番号にすることを エンコード、番号を文字に戻すことを デコードといいます。保存と表示で文字コードがちがうと、別の文字に変換されて 文字化けになります。
図でイメージする
例題(くわしい手順)
「文字化け」がなぜ起きるのかを、順に見てみます。
- 保存:文字を、ある文字コードのルールで番号に変換して記録する(エンコード)。
- 表示:番号を文字コードのルールで文字に戻す(デコード)。
- ズレ:保存時と表示時で文字コードがちがうと、同じ番号でも別の文字になり 文字化けする。
文字化けを防ぐには、保存も表示も 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バイトになることが多く、文字数とバイト数は一致しません。
多くの文字化けは文字コードの指定ちがいが原因で、正しい文字コードで開けば元に戻ることがあります。
練習問題
まず自分で解いてから解説を開きましょう。
文字化けが起きる主な原因は何ですか。
解答・解説を見る
答え:文字コードの不一致
保存時と表示時で文字コードがちがうと、番号が別の文字に変換されて文字化けします。
半角の「A」がASCIIで65のとき、「B」「C」の番号はいくつですか。
解答・解説を見る
答え:66、67
ASCIIではA・B・Cが連続した番号(65・66・67)になっています。
日本語や絵文字を1つの体系で表せる文字コードは何ですか。
解答・解説を見る
答え:Unicode(UTF-8)
Unicodeは世界中の文字と絵文字に番号を割り当てた体系で、UTF-8はその代表的な保存方式です。
「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基礎の範囲を参照し、オリジナルに作成(実在試験問題の転載はありません)。正確性は編集・監修フローで確認しています(仕様書 第11章)。