GAEアプリでUnicodeDecodeErrorに対処する方法


Google App Engine for Pythonで日本語を使ったアプリケーションをアップロードすると、

UnicodeDecodeError : ‘ascii’ codec can’t decode byte

とUnicodeDecodeErrorが発生するときがあります。


その場合、Kayを使っていれば、view.pyに、webappならmain.pyの先頭付近に

import sys
stdin = sys.stdin
stdout = sys.stdout
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdin = stdin
sys.stdout = stdout

と書いて、強制的にエンコードUTF-8にします。


これは、Google App Engine側でsitecustomize.pyやsite.pyのようにエンコードを指定することができないから、ということが原因のようです。