むつの日記

20c3d8ac :むつ 2006-05-16 21:20
Python の UnicodeEncodeError: 'ascii' codec can't encode characters in position 云々というエラー
ターミナルに出力するときはオッケーなのにリダイレクトするとエラーになってしまうのです。
なんでー? と調べていたら、以下のようでして。
http://www.python.jp/pipermail/python-ml-jp/2005-March/003246.html

>(リダイレクト)だとエラーとなるのは、デフォルトのエンコード名が変わっているからです。

>結論から言いますと、
> print "try '%s' in %s (%s)" % (s0, enc1, " ".join(map(lambda c:"%02x" % ord(c), s)))
>の s0 のところを
> repr(s0)
>または
> s0.encode(sys.getfilesystemencoding())
>とすればリダイレクトしてもしなくても同じ結果になると思います。

助かりました。
Powered by shinGETsu.