Edited at

jQueryでShiftJISエンコードされたCSVを処理する

More than 1 year has passed since last update.


想定状況


jquery(1.10)を用いてajaxでCSV(Shift-JIS)を取得する


問題点と解決方法


問題:Shift-JISがうまくエンコードできずに文字化けする


解決方法


1)ファイルのエンコードを変更する

ShiftJISエンコードできるようにまずhtmlとjsをShiftJISにエンコードします。

エンコードにはDreamweaverを使いました。


  • JSファイル(Shift-JIS)

  • HTMLファイル(Shift-JIS)
    ※meta charset=utf-8になっていないか注意


2)サーバサイドで送出文字コードを指定する

.htaccess

AddDefaultCharset Shift-JIS


補足

overrideMimeTypeが実装されているブラウザ(IE10+,Chrome,Firefox)であれば

以下のようにajax側でmimetypeをオーバーライドすれば対応できます。

$.ajax({

beforeSend : function(xhr) {
xhr.overrideMimeType("text/plain; charset=shift_jis");
},
url : 'dummy.csv',
dataType : 'text'
}).done(function(text) {
//処理
});

参考 IEでもできた! jQuery.ajaxでShift JIS(sjis)の外部HTMLを読み込む時の文字化け回避方法