文字コード

コンピュータは論理や数値を扱います。
言葉を表現するために、使用する文字の種類を集めます。
それぞれの文字に個別の番号を付けて区別します。
これを文字集合、CharacterSet、charsetと呼びます。

文字の番号は扱いにくい場合があります。
扱いやすい形に符号化して使用します。
この符号化の方法をエンコーディングと呼びます。

日本では文字コードという言葉は、文字集合やエンコーディングを指すことがあります。
海外では文字集合とエンコーディングを明確に区別します。

試しに文字コードを作る例を示します。
次のように割り当てます。

* あ : 1
* い : 2
* う : 3
* え : 4
* お : 5

この割り当てにより、次のような言葉が表現できます。

* あい : 1, 2
* あお : 1, 5
* いえ : 2, 4
* うえ : 3, 5
* え : 4
* お : 5

このように、日本語の一部を数値で表すことができました。
しかし、次のような言葉は表現できません。

* かい
* やま
* えほん

必要な文字コードが無いからです。
すべての言葉を表現するためには、その言語で使われるすべての文字を文字コードに含める必要があります。

別の文字コードを作ってみましょう。

* A : 1
* B : 2
* C : 3
* D : 4
* E : 5

先の文字コードで書いた言葉を、後の文字コードで読むと、どうなるでしょうか。

* あい : 1, 2 -> AB
* あお : 1, 5 -> AE
* いえ : 2, 4 -> BD
* うえ : 3, 5 -> CE
* え : 4 -> D
* お : 5 -> E

適用する文字コードを間違えると、このように[[文字化け]]が起こります。