• 締切済み

chromeとFirefoxのJSONの文字コード

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

みんなの回答

  • wormhole
  • ベストアンサー率28% (1621/5656)
回答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

  • 複数のテキストの文字コード変更

    私は今、Linuxで簡単なプログラムを作りHPに載せたいと考えています。 そして実際に載せて見たのですが、日本語入力したところがどうしても文字化けしてしまいます。 そして、文字化けの原因が文字コードにあるとわかりutf-8からsjisに変換したところ、文字化けしないようになりました。 日に20数個ものプログラムを作り、アップロードするので1つ1つ文字コードを変更している状態です。 しかし、現状ではとても大変なので、スクリプトを作り、複数のファイルの文字コードを変更したいと考えているのですが、どのようにすればいいのでしょうか? どなたか教えていただけませんか?

  • 【フォルダ名の文字コードを変換したい】

    【フォルダ名の文字コードを変換したい】 Windows Vistaです。 Windowsではフォルダ名にShift-JISを使っていますが、とあるプログラムが日本語を読み込む際、文字コードがUTF-8でないと読み込めないようで、フォルダ名に日本語を含むフォルダを参照すると文字化けしてしまいます。 なのでフォルダ名をUTF-8に変換したいです。 検索するとLinux上でShift-JISのフォルダ名をUTF-8にしたり、Windows上でもファイルの内容をShift-JISからUTF-8に変換したりする方法は見つかるのですが、Windows上でフォルダ名をUTF-8に変換する方法が見つかりません。 UTF-8に変換するとエクスプローラ上では文字化けするので、需要がないのでしょうか。 コマンドプロンプトとか苦手なので、何かフリーソフトでもあればいいのですが…

  • 文字コード変換について

    現在、あるWebシステムを開発中なのですが、文字コードについて基本的な質問があります。開発中のシステムでは、データベースはOracleでAL32UTF8(UTF8)を使っています。アプリケーション自体はJavaで開発しています。このWebシステムには以下のように外部システムやファイル経由でデータをロードすることがあります。 (1)ファイル経由でデータをロードする場合 クライアント端末からファイルを読み込ませてそのファイルのデータをデータベースにロードするような動作があります。この際、ファイル自体の文字コードは重要ですか(データベースがUTF8である以上、ファイルがUTF8でないとそのままロードすると文字化けする等の現象がありますか)?基本的にはWindowsクライアントですが、OSのバージョンは多様なので、OSによっては(メモ帳などでデフォルトで保存される文字コードによっては)問題が起こり得るのでしょうか?その場合は、ファイルアップロードの際にUTF8以外の文字コードであるかを自動判別して、UTF8に変換するような必要がありますでしょうか?UNIXではnkfで指定の文字コードに変換できるらしいことは知っていますが、ウェブアプリケーションでそのような自動判別からのUTF8変換など、可能なのでしょうか?コードを教えて頂けると大変助かります。 (2)外部システム経由でデータをロードする場合 メインフレームなど他のシステムから、例えばSOAPなどでインテグレーションする場合にも、文字コードを意識しないとやはり文字化けを招くことになりますか?(文字列が例えばEUCやEBCDICでわたってくる場合は、それをコード変換する必要がありますか?)それはnkfコマンドによるファイル変換のように一発で出来ることなのか、それとも一文字一文字何らかの処理を行うものなのでしょうか?Javaで数行プログラムを書けば済むレベルの話なのか、HULFTなどの高価なツールでないと対応できない話なのか、全く想像がつかないため教えて頂けると大変幸いです。 以上、宜しくお願いします。

    • ベストアンサー
    • Java
  • Variant型配列の文字コード変換

    CSVデータを読込み、Excelのセルに書込むプログラムを作成しています。 UTF-8で書かれたCSVを読み込むと、もちろんだと思いますが、Excel上で文字化けが生じます。 カンマごとにVariant型の配列に格納してあるのですが、 その中身を取り出し、UTF-8にコード変換する事は出来るのでしょうか。 わかる方いらっしゃいましたら、回答願います。

  • PHPの文字コード変換について

    PHPで mb_convert_encodingを用いて UTF-8で記述されたPHPスクリプトファイルの PHPファイル内の任意の文字列の文字コードを変換する場合、 $value = "文字列"; $str = mb_convert_encoding($value ,"UTF8","UTF8"); print $str; この場合、特に問題なく、変換がおこなわれます というか、意味のないで処理ではありますが。 次に $str = mb_convert_encoding($value,"EUC-JP","EUC-JP"); とした場合 うまく文字列の文字コードの変換がおこなわれず 出力内容は文字化けします。 次に $str = mb_convert_encoding($value,"SJIS","SJIS"); とした場合 EUC-JPと同じく文字コード変換に失敗し 文字化けするだろうとおもいましたが おもいのほかブラウザの文字コードUTF-8のままで文字化けしていないのです。 これはどういう現象でしょうか? たとえば一つ目は UTF8で記述されたPHPファイルの文字列をそのままUTF-8として 変換されせるのですから、問題ないはずです。結果問題ありません。 二つ目は UTF-8でかかれたPHPファイルの文字列をEUC-JPでかかれたファイルとして EUC-JPという文字コードに変換しなさいという命令ですよね? これは思う通りにいかなくて文字化けした文字列が出力されるのはわかるのですが 三つ目はUTF8で記述された文字列をSHIFT-JISとしてSHIFT-JISに変換しようとしているにも かかわらず、結果問題なくブラウザのUTF-8で文字列と表示されてしまいます。 これはいったいどういう事なのでしょうか? これが仮に $str = mb_convert_encoding($value,"SJIS","UTF-8"); なら話は簡単んです。 UTF-8で記述されたファイルの任意の文字列を UTF8からSJISに変換しようとしているのですから問題なく SHIFT-JISでエンコーディングされた文字列が帰ってくるはずです。 こ乃原因をご存知のかたよろしくご教授ください。 お願い致します。

    • ベストアンサー
    • PHP
  • AjaxでJSONを受信すると、文字化けする

    お世話になっております。 ajaxでJSONを受信して文字列に変換すると、日本語部分のみ文字化け("?"に変換)されてしまいます。色々と調べているのですが原因が分からず、恐れ入りますがご教示のほどお願い致します。 尚、日本語部分のメッセージには個別に設定したBean Validationのアノテーションのメッセージが 入ります。 $.ajax({ type: 'GET', url: url, dataType: 'json', data: params, contentType: "application/json; charset=utf-8" }) .done(function(params, dataType){ alert($.stringify(params)); } ---alert($.stringify(params))の内容--- {"contents":[{"id":"a","message":"123abc???"}} (送信元では【"message":"123abcあいう"】と設定)

    • ベストアンサー
    • AJAX
  • mysqlのデータベースの文字コードの変換について

    mysqlのデータベースの文字コードの変換について教えてください。 テストサーバー環境で誤って文字コードUTF-8のデータベースを作成し、文字コードEUC-JPのデータを投入してしまいました。 それでもテストサーバー環境では文字化けせずにウェブアプリを表示できていましたが、テストサーバーのデータをエクスポートすると、テキストエディタで開いた時点で文字化けしています。 (文字コードはUTF-8、EUC-JPのいずれでも) もちろんそのデータを本番サーバーにインポートしても文字化けしてしまいます。 (データベース文字コードはUTF-8、EUC-JPのいずれでも) テストサーバーからデータをエクスポートする前に文字コードを変換することは可能でしょうか? もしくは他に問題を解決する方法はありますでしょうか? ご存知の方がいらっしゃいましたら教えてください。

    • ベストアンサー
    • MySQL
  • 文字コードにお詳しい方、教えて下さい

    少々プログラミングに無関係な質問も含みすみません。 当方12年ほどインターネットをしております。 perlを齧る程度、c/c++を2年ほど経験しており 半角1はバイト 全角は2バイト OS毎の改行コード差 程度の知識は有るのですが、 文字エンコードの事がよくわからず、質問させて頂いております。 質問1 昔はWebサイトも頻繁に文字化けしていましたが、 今は日中韓どころかアラビア語等まで普通に表示していますが、 これはShift-JISからUTF-8になったりの変化で 起きた事なのでしょうか? しかし日本語でも2万文字弱 中国語でも4万文字? 2バイトで表現できるのは65536通り弱だと思うのですが なぜそんなに多くの国の言語を同時に表示できるのでしょうか? まさか1文字4バイトだったりするのでしょうか? 質問2 プログラムによって日本語以外の言語のコピー&ペーストが 可能な場合と不可能な場合とが有りますが、 それは全てShift-JISとUTF-8の差のみと思って良いのでしょうか? また、UTF-8の中にもバージョン差や国籍差が有ったりするのでしょうか? 質問3 海外プログラムを日本語のXPで起動すると文字化けし、 MS純正のOSの国籍?カモフラージュソフトで その国のXPのフリをして起動させると文字化けしなくなり 代わりに日本語が文字化けする というプログラムが有るのですが、 これと文字コードにはどんな関係があるのでしょうか? 質問4 ブラウザのように多くの国の言語を表示できるアプリケーションを C/C++で開発したい場合、どういう情報を調べて知識を付け、 どういう機能を使う、使わないの注意を払うべきでしょうか? 以上です。どれか1つの質問に対してのご助言だけで構いません。 参考になるURLの貼り付けだらけでも構いません。 何かご助言を頂けますと幸いです。

  • POSTしたデータの文字コードがutf-8になる

    ヘッダーで文字コードをSJISになるように <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> と設定し、ボディ側のformで <form method="post" action="xxxxx"> <input type="text" name="n" value=""> <INPUT type="submit" value="実行"><br /> </form> とすると、サーバ側で受け取ったname="n"がutf-8になっています。 PHPですが、受け取った文字を echo mb_convert_encoding($_POST["n"],"SJIS","utf-8"): とSJISに変換し、表示すると、文字化けなく表示可能なのですが、そのままでは文字化けてしまいます。(表示側のHTMLも文字コードは上記と同様にヘッダーで文字コードを指定しSJISにしています。) 何が悪いのでしょうか?(特殊な環境としてはchrome+jquery mobileを使用しています。) よろしくお願いします。

    • ベストアンサー
    • HTML
  • FirefoxのBookmarksを、UTF-8→Shift_JIS→UTF-8と変換後に改めてFirefioxにインポートすると文字化けするのは?

    Linuxを使いたくて、文字コードについて少しづつ勉強しています・・・。 現在はまだ、Windows XP Home SP2を使っています。 『InternetExplorer 7上で』作成した、[お気に入り](Shift_JIS)を、TeraPadで開き、UTF-8に変換、保存したものは、文字化けせずにFirefoxにインポートできました。 Mozilla Japan ナレッジベース - [Firefox からエクスポートしたブックマークが Internet Explorer でインポートできない] http://www.mozilla-japan.org/kb/solution/2050 でも・・・。 (1) Firefoxのブックマーク(Bookmarks.html)をエクスポートし、UTF-8→Shift_JIS→UTF-8と変換後に改めてFirefioxにインポートすると文字化けしてしまいます。なぜなのでしょうか?。 『InternetExplorer 7上で』作成した、[お気に入り](Shift_JIS)を、TeraPadで開き、UTF-8に変換、保存したものとは違う内容(データ)になてしまうのでしょうか?。 (2) また、Firefoxからブックマーク(Bookmarks.html)をエクスポートし、TeraPadで開き、Shift_JISに変換、保存したものをInternetExplorer 7にインポートすると、一見正常にインポートできたようなのですが、詳細にみると、" ' "という文字が変な文字に置き換わったり、" & "の後に" amp; "という文字が付加されたりします。 これは、Shift_JIS、UTF-8がお互いに認識できない文字コードを含んでいることによるもの(解決不可能なもの)と考えてよいのでしょうか?。 お願いいたします・・・。

専門家に質問してみよう