「文字化け」といっても、マルチバイト文字はBase64にエンコードされて送信される、という謎仕様。さらに、文字の組み合わせによっては Base64ではなく、Quoted-printable にエンコードされたりと、意味がわからない。。。
そんなわけで、ファイルとテキストは、別のリクエストに分けたりと、クライアント側で対処していた。
先日、この問題をGCPのサポートに問い合わせた結果、あっさりと対応方法を教えてくれた。
app.yamlに以下を追加すれば良いだけ。
libraries: - name: webob version: "1.2.3"
なんと、WebObのバグだったようだ。
http://docs.webob.org/en/stable/changes.html#id25
GAEのPython2.7環境では、webobの1.1.1(かなり古い)がデフォルトらしく、1.2.3で解決されたこのbugfixのため、この対応で回避できる。という事らしい。
といっても、1.2.3もかなり前のバージョンなので、もっと上位のバージョンしても問題なさそうだけど、今回はこのバージョンで様子見で。。。
そろそろ、Goに移行しようかなぁ。。。
0 件のコメント:
コメントを投稿