文字コードについてまとめる


文字コード周りの定義はすぐに忘れるので、要点を整理しておく。

概念の整理

文字集合』は、文字の集合のこと。
コードポイント』は、文字集合内での位置のこと。
エンコーディング』は、文字集合の各文字に番号を割り当てるときの方式のこと。
文字コード』は、その割り当てられた番号そのもののこと。

この関係を表に表すとこんな感じ (縦軸:文字集合、横軸:エンコーディング)

文字集合\エンコーディング JIS系 EUC系 UTF系
JIS X 0201
JIS X 0208
Shift_JIS EUC-JP -
Unicode - - UTF-8
UTF-16

文字集合とエンコーディングは直交する概念のはず。しかし混同して使用されることがある。「エンコーディングをUnicodeにしようか、それともUTF-8にしようか」と言うのは間違いである。

代表的なエンコーディング

  • ASCII (American Standard Code for Information Interchange)

128個の文字集合を7bitで表すエンコーディング。他のエンコーディングもASCII互換のものが多い。つまり7bitまではASCIIでエンコーディングしてそれ以降を各々の方式でエンコーディンしている。

  • Shift-JIS

主にWindows上で日本語の文字を扱う場合に利用されているエンコーディング。ASCII互換。

  • EUC-JP (Extended UNIX Code Packed Format for Japanese)

主にUNIX上で日本語の文字を扱う場合に利用されているエンコーディング。ASCII互換。

  • UTF-8 (Unicode Transformation Format-8)

Unicode(世界で使われる全ての文字を共通の文字集合で利用できるよにと考えられたもの)のエンコーディングの一つ。可変長(1-4バイト)の8ビット符号単位でエンコーディング。ASCII互換。

  • UTF-16 (Unicode Transformation Format-16)

Unicodeのエンコーディングの一つ。
16ビット符号単位でエンコーディング。ASCII非互換

備考

文字集合符号化文字集合とも呼ばれる。
コードポイント符号点とも呼ばれる。
エンコーディング文字符号化方式とも呼ばれる。