文字エンコーディング(文字エンコード)

文字エンコーディングとは

文字をコード化することです。 文字エンコードともいいます。 エンコーデイング(encoding)には 「コード化、符号化」という意味があります。 そしてコード化されたものが「文字コード」になります。

例えば「あ」という文字を文字エンコーデイング(UTF-8)すると、 文字コード「E38182」になります(下図参照)。

文字エンコーディング

先ほど「文字エンコーデイング(UTF-8)」と記述しましたが、 UTF-8とは文字エンコーディングの種類の1つです。 文字エンコーディングの種類は多数存在し、 メジャーな文字エンコーディングとしては 「UTF-8」「EUC」「Shift-JIS」などがあります。

それぞれの文字エンコーデイングで文字に対応する文字コードが異なります。 例えば「あ」という文字の場合、文字エンコーデイングと文字コードの対応表は 次のようになります。
文字エンコーディング文字コード
UTF-8E38182
EUCA4A2
ShiftJIS82A0

文字と文字コードの対応表

「UTF-8」「EUC」「Shift-JIS」などの文字エンコーディングには、 それぞれ文字と文字コードの対応表があります。

UTF-8
文字文字コード
E38182
...
...
EUC
文字文字コード
A4A2
...
...
Shift-JIS
文字文字コード
82A0
...
...

文字エンコーディングという言葉は、 結構あいまいに使われていて、 上記のような文字と文字コードの対応表(対応関係)を 文字エンコーディングという場合もあります

文字化け

文字化けが起きる理由は次の通りです。
例えば「あ」という文字を文字エンコーディング「UTF-8」で文字コード化すると 「E38182」になります。この「E38182」をデータとしてファイルに保存します。

次にファイルを読み込むんだときには「E38182」というデータが取得できます。 「E38182」というデータを文字エンコーディング「UTF-8」ではなく、 「Shift-JIS」として読み込んだ場合、Shift-JISの対応表に対応した文字が表示されます。 その結果表示されるのは「あ」とは全然違う文字「縺」です。 これが文字化けの起きる理由です。

IT基礎知識