020:デフォルトの文字コードを設定
日本語環境でのPython を見てください。
ソースコードのエンコーディングを定義するには、ソースコードの一行目か二行目に次のように書きます。
# 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