PyAWSが日本語検索できない??

また、続きですが、動いたと思ったら日本語で検索ができない。
検索すると、次のようなエラーがでる。

return url + '&'.join(['%s=%s' % (k,urllib.quote(str(v))) for (k,v) in argv.items() if v ])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

UnicodeEncodeErrorというエラーは非常にやっかいっぽい。

いろいろチャレンジしていると、どうもstr()が読み込むときのencodingがおかしい
ということで、こんな感じに修正。

return url + '&'.join(['%s=%s' % (k,urllib.quote(v.encode('utf-8'))) for (k,v) in argv.items() if v ])

strをつけたままでもよいが、encodeの戻りはどうやら、strのようだから、なくてもOK。


★ください。


と、思いましたが、この修正は不要です。
というか、ダメな場合があるのでやめました。

keyword = self.request.get('keyword').encode('utf-8')

こんな感じで対応するオブジェクトを対応したほうが正しいはず。