• 締切済み

chromeとFirefoxのJSONの文字コード

herokuにJsonファイルをあげました。 http://jsontandmasao.herokuapp.com/wordcard.json 私の環境で見ると、Firefoxは文字化けしないのですが、chromeでは文字化けしています。UTF-8で書いています。 これはchromeの設定が何か変わってしまっているからなのでしょうか? それとも、Firefoxの機能で文字コードを合わせてもらえているのでしょうか? 多くの場合はプログラム側でコードを変換して読み込むので問題ないのですが、珍しくJsonを生で見る機会があるのでできればどちらで見ても、正しく表示したいです。 何か方法はありませんか?

みんなの回答

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

あくまでhttpリクエストとレスポンスの状況からの想像ですが、 レスポンスヘッダのContent-typeがapplication/json だけでテキストエンコーディングが未指定になっています。 そのためwebブラウザがテキストエンコーディングを自動判定してるようです。 その自動判定結果がFirefoxではUTF-8、chromeではShift_JISになってるようです(たまたま今の内容がそう判定されているだけだと思いますので内容が変わると変わるかと思います)。 対処方法としては一番いいのは、webサーバ側でレスポンスヘッダにテキストエンコーディングを返すようにする事かと思います(今回の例であれば Content-type: application/json; charset=UTF-8 になるかと)。 次点でchromeの拡張機能のテキストエンコーディングを導入して自動判定ではなく手動で指定することでしょうか。

関連するQ&A