Unicode・UTF-8・UTF-16 とは・違い・文字コード関連の知識

あるファイルやウェブサイトを見ようとしたら文字化けしていた。「文字化け」はなぜ起こる?Unicode や UTF-8 とは何を指しているのか?

目次

Unicode とは

Unicode とは、文字に対して割り振られた番号の集合体のこと。

機械が文字を認識できるようにするため、世界中の文字ごとに「コードポイント」と呼ばれる番号を振って定義した。ポケモン図鑑の No みたいな感じで、「1番、『あ』」「2番、『い』」みたいな定義がされている。そういう一覧表のことを Unicode と呼ぶ、と思って良い。

こういうコードポイントと文字の対応表のことを、「文字集合」「文字セット」とか言ったりもする。Unicode は「符号化文字集合」の一つ、と言う。

UTF-8 とは

かたや UTF-8 とは、コードポイントを基に、機械が認識できる 0 と 1 のビット (符号) に変換する (= 「符号化する」) 際の、変換方式の一つである。「符号化形式」の一種、と表現する。

ある1文字をコンピュータが受け取った時に、まず Unicode として定めた「コードポイント」を特定する。コレは「対応表」から探すイメージ。UTF-8 は、この「コードポイント」を基に 0・1 に変換する「変換方式」のことを指している。

UTF-8 は1文字を1〜6バイトで表現しようとする。1文字を表現するバイト数が文字によって可変するのが特徴。

8-bit UCS Transformation Format の略。

UTF-16 とは

Unicode と UTF-8 の違いが分かれば、UTF-16 の理解は簡単だろう。コードポイントからビットへの変換方式が別の規格、というワケだ。

最近のウェブでは UTF-8 が主流になっているが、UTF-16 が劣っているというワケではなく、それぞれに長所・短所があるため、複数の方式が併存している。

その他の規格

UTF-8・UTF-16 以外にも、様々な「符号化形式」が存在する.

ASCII とは

Shift-JIS とは

EUC-JP とは

ISO-8859-1 とは

エンディアンとは

BOM とは

参考文献