文字コード

文字コードみたいなのって意外に重要だったりすることが多い。

文字コード

文字コードとは、コンピュータ上で文字を利用する目的で各文字に割り当てられるバイト表現。

(符号化)文字集合と(文字)符号化形式

  • (符号化)文字集合:世界中の文字の集合
  • (文字)符号化形式:文字集合をコンピュータ上で表示する数値の振り方

文字集合は等しいが符号化方式だけが異なる場合と、それぞれ異なる文字集合を同じ符号化方式で扱う場合がある。

日本語の場合

日本語には JIS X 0208 というJIS企画の文字集合に対して、 ISO-2022-JP (JIS コード)EUC-JPShift_JIS など複数の符号化方式が対応している。

Unicodeの場合

Unicodeは符号化文字集合。符号化形式はUTF-8UTF-16など複数種類存在する。

  • UTF-8:ASCIIの上位互換。そのためASCII前提のプログラム(HTTP, SMTPなど)でも利用ができる。

Pythonの場合

私の環境(Mac上のPython3)ではデフォルトの文字コードUTF-8になっていた。だからWindows上でコードを使い回す場合にはUTF-8の指定が必要だったのか。

Python2ではデフォルトの文字コードがASCIIのため日本語を利用するにはUTF-8の宣言が必要となる。