http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html
環境はUNIX上のPython 2.4, 2.5を想定しています。
(中略)
回避方法:sys.stdoutやファイルオブジェクトを直接使わないようにする上記の問題点を回避するためには、(中略)unicode型を渡さず、str型に変換してから渡す、というのが無難な方法
安心してprintにunicode型を渡したい場合には、生のsys.stdoutではなく、streamwriterで import sys, codecs sys.stdout = codecs.EncodedFile(sys.stdout, 'utf_8') として、sys.stdoutをラップしてしまう方法が考えられます。
めも
sys.stdoutをファイルオブジェクトに差し替えれば、この方法は、ファイルオブジェクトでも使うことができます。 f = open('fairu', 'w') f = codecs.lookup('utf_8')[-1](f) f.write(u"日本語")
めも、未評価
参考
http://d.hatena.ne.jp/kobakoba0723/20110327/1301211138