スキップしてメイン コンテンツに移動

投稿

12月, 2016の投稿を表示しています

BlobstoreUploadHandlerの文字化け問題の解決方法

Google App Engine Python2.7環境で、blobstore_handlers.BlobstoreUploadHandlerを使って、ファイルアップロードする際、日本語のリクエストパラメータが文字化けする問題に長年悩まされていた。 「文字化け」といっても、マルチバイト文字は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に移行しようかなぁ。。。