Google Cloud Storageで文字コードが勝手に変わる。

1,341 views
Skip to first unread message

ke...@akakabulab.jp

unread,
Aug 11, 2014, 10:02:53 PM8/11/14
to google-app-...@googlegroups.com
GAE for PHPでユーザーがGoogle Cloud Storage(以下GCS)にデータをアップロードすると、テキストデータの文字コードが勝手に変わってしまいます。
この動作が書いてあるドキュメントをどなたか知らないでしょうか。この動作を抑止する設定や対処法を探す上で必要です。

○背景
GAE for PHP+Wordpress+bbPressの掲示板アプリで、画像添付をした投稿をするには、GCSが必要になります。詳細は下記URL
上記変更で、ユーザーからのアップロードはGCSに保存されて、PHPに渡ります。PHPはGCS内のデータを処理する事になります。

○現象
書いてある通りにGCS対応をすると、画像は添付できるものの、投稿の本文が文字化けするようになります。

○確認した事実
・文字化けするのは投稿本文だけでなく、添付ファイル名が2バイト文字ならファイル名も文字化けする。(結果アップロードに失敗する。)テキスト属性のデータは全て同じと思われる。
・ブラウザからGogoleへ送られるパケットをキャプチャして確認すると投稿本文の文字コードはUTF-8だが、PHPにあがって来た時点で、GCSにはISO-2022-JPに変換されて保存されている。

上記から、HTTPのPOSTコマンドのデータの保存先をGCSにすると、GCSが勝手に文字コードを変換していると判断しました。
もちろん、対処療法的に文字コードをまたUTF-8に再変換する処理を加えれば、掲示板に正常に表示されるようになるでしょうが、今後、wordpressやbbPressをバージョンアップする度に同じ変更が必要になり、また本文、ファイル名以外にテキスト属性データが見つかる度にモグラたたき的対応が要ります。
しかも、GCSのこの動作が仕様に明記されたものでないなら、ある日いきなり別の動作になることもあり得ます。
まずは、この動作がドキュメントされたものなのかどうかを知りたく思います。

Reply all
Reply to author
Forward
0 new messages