[Mon Aug 06 14:29:41 2012] [error] [client ::1] UnicodeEncodeError: 'ascii' codec can't encode characters in position 141-147: ordinal not in range(128), referer: http://localhost:8888/
と出てしまった。ネットで解決方法を探してみると
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 0: ordinal not in range(128) - x-iteの日記: " import sys reload(sys) sys.setdefaultencoding('utf-8')"
というページを見つけた。import sys
reload(sys)
sys.setdefaultencoding('utf-8')
をプログラムに追加してみると、なぜかエラーもなく動いた。なんで?これでいいの?
[追記 2012年8月6日]
解決。いままでのコードは
print(tmpl.render())
となっていてrenderしたものをそのままprintしてエラーになっていたのだけど、tmpl.render()がUnicode型だったようだ。(よく考えたら当たり前か!?)
そのため、utf-8にエンコードして出力(Print)しないといけなかったんだ。ということで
print(tmpl.render().encode("utf-8"))
という風に書き換えたら普通に動いた。
Evernote 




