Twitterをモバイル環境でも扱えるようにするWebアプリとして、twitterMobileがあります。このアプリにおいて、通常のタイムライン取得や投稿の際には問題がなくても、位置情報(GPS)を利用して投稿する際に、取得する文字列が文字化けするという事態が自分では起きていました。
最近携帯電話の機種を変更して*1ようやくGPSを利用できる環境になったので、いざ利用としてみたら文字化けして対応に苦慮していました。
結論から言うと、問題は文字コードにあります。具体的には、次のようにすることで正しく文字化けをしないで位置情報を取得することができました。
- /classes/Utility/Location.phpの83行目のmb_convert_encodingが含まれる行をコメントアウト
- .htaccessを作り、以下のように記述する
php_value default_charset "SJIS"
php_flag default_charset "SJIS"
php_value mbstring.internal_encoding "SJIS"
php_value mbstring.http_input auto
php_value mbstring.http_output "SJIS"
これで大丈夫だと思います。同様の症状に悩んでいる方の参考になれば幸いです。
*1:F-01Aに変更