2009年10月26日月曜日

Python のリダイレクトでエラー?

普通に動いている Python のプログラムをリダイレクトしたらエラーが...

codeEncodeError: 'ascii' codec can't encode characters in position 2-9: ordinal not in range(128)

調べてみると、どうやら内部仕様からこのエラーが出てくるようですね。出力文字コードに ASCII 以外の文字が含まれる時は何かにエンコードする必要があるようです。標準出力の時のみ自動でOSの利用している文字コードにエンコードしてくれるのでエラーが出ませんでしたが、リダイレクト時には何にエンコードしたらいいのかわからずエラーが出たようです。

str = u"あ"
print str.encode(sys.getfilesystemencoding())

で解決するようです。

...どうでもいいですが Python って便利って聞いてますがですが、文字コード周りは面倒ですね...。

2009年10月20日火曜日

ブログ作成

ブログ始めました。

技術系の話題がメインです。