読者です 読者をやめる 読者になる 読者になる

ばくのエンジニア日誌

技術的なメモなどを書いていきます。

文字コードについての2つの概念

encoding
このブログ(ばくのエンジニア日誌)はBAKUNOTEに移転しました。

以前の投稿からしばらく文字コードについて気になっていたので、少し整理してみました。

文字コードって?

文字コード(もじコード)はコンピュータ上で文字を利用するために各文字に割り当てられるバイト表現。もしくは、バイト表現と文字の対応関係(文字コード体系)のことを指して「文字コード」と呼ぶことも多い。

文字コード - Wikipedia

なぜややこしいのか

文字コードに関して、(符号化)文字集合(文字)符号化方式という区別がなされることがあるそうです。

(符号化)文字集合とは読んで字の如く、割り当ての対象にしている文字の集合のこと。
「全てのひらがな」「全てのひらがなとカタカナと漢字」みたいなものですね。

一方で、(文字)符号化方式とは文字集合をコンピュタが利用できるバイト列にどう変換するのか、という決め事。
「あ」は001、「い」は010、「う」は011みたいに決まっていくんですかね。

上に挙げた投稿で「UTF-8Unicodeの一種なのかな?」と書きましたが、まさにこの2つの区別が出来ていなかった事が混乱の原因でした。一種なのではなく、それぞれ、Unicode = (符号化)文字集合」「UTF-8 = (文字)符号化方式」という対応関係になっていたのですね。

参考記事

こちらのブログを参考にさせていただきました。
UnicodeとUTF-8の違いは? - 自分的まとめ - Humanity