こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

chromeとFirefoxのJSONの文字コード

herokuにJsonファイルをあげました。
http://jsontandmasao.herokuapp.com/wordcard.json

私の環境で見ると、Firefoxは文字化けしないのですが、chromeでは文字化けしています。UTF-8で書いています。

これはchromeの設定が何か変わってしまっているからなのでしょうか?
それとも、Firefoxの機能で文字コードを合わせてもらえているのでしょうか?

多くの場合はプログラム側でコードを変換して読み込むので問題ないのですが、珍しくJsonを生で見る機会があるのでできればどちらで見ても、正しく表示したいです。

何か方法はありませんか?

投稿日時 - 2017-07-28 11:29:52

QNo.9356788

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

あくまでhttpリクエストとレスポンスの状況からの想像ですが、
レスポンスヘッダのContent-typeがapplication/json だけでテキストエンコーディングが未指定になっています。
そのためwebブラウザがテキストエンコーディングを自動判定してるようです。
その自動判定結果がFirefoxではUTF-8、chromeではShift_JISになってるようです(たまたま今の内容がそう判定されているだけだと思いますので内容が変わると変わるかと思います)。

対処方法としては一番いいのは、webサーバ側でレスポンスヘッダにテキストエンコーディングを返すようにする事かと思います(今回の例であれば
Content-type: application/json; charset=UTF-8
になるかと)。
次点でchromeの拡張機能のテキストエンコーディングを導入して自動判定ではなく手動で指定することでしょうか。

投稿日時 - 2017-07-28 21:37:52