UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 2-8: ordinal not in range(128) | Google App Engine
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 2-8: ordinal not in range(128)
なんぞこれ。
import sys print sys.getdefaultencoding()
ascii
だそうで、これが駄目なようで。。。
通常のpythonは、
sitecustomize.py
に
import sys sys.setdefaultencoding('utf-8')
を追加すればいいそうです。
app engineでは、それを各場所が無いので。直接読み込まれるファイルに書かないといけないそうです。
app.yamlに設定してあるファイルに書く必要があるそうでデフォルト main.pyでしょうか。
main.pyの先頭に
import sys if 'ascii'==sys.getdefaultencoding(): stdin = sys.stdin stdout = sys.stdout reload(sys) sys.setdefaultencoding('utf-8') sys.stdin = stdin sys.stdout = stdout
と書いてみました。
reload(sys)が無いとだめで。stdin stdoutのデータ保管も初回は無いとだめな感じで。
ローカルの場合は、1ファイルだけ更新とかあるので、何度も読み込まれないけど、本番環境は、更新時だけかな?
とりあえず。
- Prev for の使い方 python
- Next google app engine の速度
- Prev for の使い方 python
- Next google app engine の速度