![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Ajaxを利用し、SJISで作成されたCSVファイルを読み込みたいのですが文字化けしてしまい困っています。
最終的には、Windowsのサイドバーガジェットで、東京電力が公開しているSJISのCSVファイルの中身を表示したいのです。(それ以前にAjax単体で文字化けしてしまいます)
本来、CSVをUTF-8にしたり、サーバサイド(PHPなど)側で文字コード変換したりするのでしょうが、それができないため、JavaScript側で何とかしたいのですが、ご教授願います。
以下、サンプルソースです。
何故か、東京電力のCSVはダメで、東北電力のCSVは大丈夫です。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<head>
<script language="JavaScript">
function getCsv(uri){
var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttp.open("GET",uri);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState==4 && xmlHttp.status==200){
document.getElementById("disp").innerHTML = xmlHttp.responseText;
}
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<form>
<select onchange="getCsv(this[this.selectedIndex].value);">
<option>↓選択してください
<option value="http://www.tepco.co.jp/forecast/html/images/juyo …東京電力
<option value="http://setsuden.tohoku-epco.co.jp/common/demand/ …東北電力
</select>
</form>
<div id="disp"></div>
</body>
</html>
No.2ベストアンサー
- 回答日時:
> 何故か、東京電力のCSVはダメで、東北電力のCSVは大丈夫です。
HTTPのレスポンスヘッダを確認してみたところ、
東京電力は Content-Type に charset の指定がありませんでした。
一方、東北電力は charset=shift_jis になっていました。
東京電力
Content-Type: text/plain
東北電力
Content-Type: text/plain; charset=shift_jis
charset が明示されていないものだから、
実際は SJIS なのにブラウザが UTF-8 とみなして
文字化けしている状況ではないかと思います。
東京電力に意見・要望を送り、東北電力と同じに
してもらうのはどうでしょうか。
この回答への補足
その後、東電に意見を送りましたが、現時点で音沙汰無し状態で、
更に、東北電力のデータも文字化けするようになってしみました。
CSV提供元の仕様がはっきりしていないようにも見えるため、
JavaScript側でSJIS(日本語文字)利用は諦めることにしました。
回答ありがとうございます。
HTTPレスポンスヘッダを確認したところ、確かに東京電両側にcharsetの指定がありまぜんでした。
JavaScript側での回避が困難であるため、東京電力に意見を送ってみたいと思います。
アドバイスありがとございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フレーム内の要素へのXPATHはど...
-
XMLHttpRequest()で、読み込む...
-
location.replaceでの移動
-
div要素に枠線を指定とページに...
-
Javascriptを使ってQRコード読...
-
カンマ区切りのデータを配列に...
-
AjaxでJSONを受信すると、文字...
-
JavaScriptでtabindexの変更っ...
-
Ajax サーバーに負荷かかります...
-
JavascriptからPHPへのAjax通信...
-
jqueryのgetでJSPを呼び出したい
-
jQuery を外部ファイルから呼び...
-
background をフェードしながら...
-
Selenium4でボタンをクリックで...
-
二つのbxsliderをレスポンシブ...
-
Googleストリートビューの写真...
-
javascriptでAPIをcallしたい
-
jqueryのslideUpについて質問で...
-
【再質問】計算(入数*単価)...
-
onloadで動かない<DHTML+AJAXア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インラインフレームを自動更新...
-
jQueryでloadした部分に.jsが効...
-
一定時間ごとに表示内容を切り...
-
location.replaceでの移動
-
jQueryで追加した要素がマウス...
-
jQuery toggle() 戻るで開いた...
-
連番タイトル名を基準にリンク...
-
フレーム内の要素へのXPATHはど...
-
リンク元のファイル名を表示し...
-
EUC-JPに対応しているjQueryを...
-
javascriptで要素の取得が出来ない
-
リンク元のURLのパラメータでペ...
-
自動で現れるTOPにもどるボタン...
-
テーブルの形式を整えるJavascript
-
javascriptからのphpクラス...
-
画面(ウィンドウ)/画像の拡...
-
Safariでの onload="getData()"...
-
$.postとPerlのデータ受け渡し...
-
タブに地図を入れたら、中心が...
-
座標のみでクリックする方法
おすすめ情報