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

文字をコード化すること

文字エンコーディングは文字エンコードとも言います。 ここでは統一して文字エンコーディングという言葉を使います。

エンコーデイング(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の対応表に対応した文字が表示されます。 その結果表示されるのは「あ」とは全然違う文字「縺」です。 これが文字化けの起きる理由です。

文字エンコーディングと文字コードの違い

文字エンコーディングは文字を文字コード化することで、 具体例として「UTF-8」「EUC」などがあります。
文字コードは文字を数値で表したもので、 これまでにも紹介した「E38182」などが文字コードになります。

本来、文字エンコーディングと文字コードは別物なのですが、 一般的にはあいまいに使っているケースが多々あります。

「文字エンコーディングはUTF-8を指定する」といった本来の使い方ではなく、 「文字コードはUTF-8を指定する」といった使い方もされています。 むしろ非IT系の方には後者の方が通じやすいです。

この辺はあまり用語の定義にこだわらずに、 IT技術者と話をする場合は「文字エンコーディング」、 一般の方と話をする場合は「文字コード」というように、 相手の知識レベルに合わせて使う言葉を選んだ方が良いかもしれません。