home changes contents help options

020:デフォルトの文字コードを設定

日本語環境でのPython を見てください。

参考 2012年8月26日 http://www.exsoft.net/blog/entry/ec1edx

ソースコードのエンコーディングを定義するには、ソースコードの一行目か二行目に次のように書きます。

 # coding: エンコーディング名

 # coding=エンコーディング名

「エンコーディング名」の部分は、実際のエンコーディング名(euc-jpとかshift_jisとか)に置き換えて記述して下さい。なお、この指定は Python 2.3 以降から有効です。

 # -*- encoding: utf-8 -*-

 # -*- encoding: cp932 -*-

 とか

unicode() や encode() で引数を省略した場合、デフォルトでは ascii 用 Codec を使用して変換されます。省略時に別のデフォルト文字コードを設 定するためには、pythonをインストールしたディレクトリの下にあるLibの中にsite.pyというのがありますので

 encoding = "ascii" # Default value set by _PyUnicode_Init()

 encoding = "euc_jp" # Default value set by _PyUnicode_Init()

 とか

 encoding = "shift_jis" # Default value set by _PyUnicode_Init()

などのように書き換えるようです。やったことはありませんが、Windows版ではここはmbcsになっていて、Win32 の Unicode API を使用して、システムのデフォルトコードページと Unicode を変換しますので、日本語環境では Shift_JIS (CP932) 用の Codec として使用することができるらしいです。
さて、このように指定しておくと、

 jstr = unicode("日本語")
 print jstr.encode()

 ではEUC-JPやshift_jis文字列として正しく変換されるようになります。さらに encode() を省略して、

 print jtr

 と書くこともできます。

参考

PythonのソースコードをUTF-8で書くには

http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/encoding.html