python 文字コード

pythonは色々な文字コードを使えるので、逆に、文字コードではまることもありますよね!

import urllib
urlread = lambda url:urllib.urlopen(url).read()
a = urlread('http://yahoo.co.jp/')
print a #日本語がもじばけ
b = unicode(a,'utf-8')
print b #もじばけしない
#utf-8 -> unicodeへと変換したのですね
#pythonでは、文字列をunicodeで扱っておけば、ライブラリの使用で安心できるようです
#逆に、utf-8に戻したいときは
a = b.encode('utf-8')
#とします。どちらでもutf-8という文字が出てくるのですね
#'cp932' codec can't encode character
#このエラー...

#コマンドプロンプトだと
import sys
sys.stdin.encoding #->'cp932'
sys.stdout.encoding #->'cp932'

#cygwinだと
#->UTF-8
#->UTF-8

cygwinでやれってことかなぁ
バージョンは2.6.5