文字リテラルに日本語を使用する

文字エンコーディングとは

文字エンコーディングについて、Googleさんに聞いて理解したことをまとめてみます。大体合っていると思うのですが、もし違っていたらすみません。


コンピュータで扱う文字を集め、それら一つ一つに対して数値を割り当てたものを符号化文字集合といい、代表的なものにはASCII、JIS X 0208Unicodeなどがあります。そして符号化文字集合に基づいて、文字をバイト列(0と1の羅列)に変換する仕組みを文字エンコーディング文字符号化方式)といいます。EUC-JPはASCIIとJIS X 0208を、UTF-8Unicodeを対象とする文字エンコーディングです。また文字コードという用語は、ある文字に対応するバイト列を指す場合と、文字エンコーディングと同義で使われる場合とがあります。

ソースコードに日本語を記述する

Pythonでは文字リテラルに日本語を使用する場合、ソースコードの一行目か二行目に以下の文を記述して、Pythonインタプリタに.pyファイルの文字エンコーディングを認識させる必要があります。

# coding: 文字エンコーディング
# encoding=文字エンコーディング

前後に余分な文字を付けることができるので、以下のようにしてエディタに文字エンコーディングを認識させることもできます。

# -*- coding: euc-jp -*-  # Emacs
# vim:fileencoding=euc-jp # Vim