jquery.csv2table.js에서 Shift_JIS의 CSV 표시

4447 단어 csv2tablejQuery
CSV 파일을 읽고 브라우저에 테이블의 jquery를 표시할 수 있습니다.csv2table.js라는 JQuery 플러그인이 있습니다.사용법이 간단하다.
<html>
<header>
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="http://jsgt.org/lib/jquery/plugin/csv2table/v002/js/jquery.csv2table-0.02-b-4.7.js" type="text/javascript" charset="utf-8"></script>
</header>
<body>
<div id="view0"></div>
<script>
$(function(){
  $('#view0').csv2table('./data1.csv');
});
</script>
</body>
</html>
data1.csv의 내용은 다음과 같습니다.
日付,結果,遠征,燃料,弾薬,鋼材,ボーキ,開発資材,高速修復材,高速建造材
2014-12-14 08:04:36,大成功,水上機基地建設,828,0,345,345,0,1,0
2014-12-14 08:19:08,成功,長距離練習航海,0,100,30,0,0,0,0
2014-12-15 22:55:59,成功,長距離練習航海,0,100,30,0,0,1,0
2014-12-15 22:56:09,大成功,海上護衛任務,345,345,34,34,0,0,0
브라우저에 표시되는 결과는 다음과 같습니다.

하지만 순조롭게 진행되고 있는 것은 데이터1이다.csv가 UTF-8일 때Windows에서 CSV는 Shift_JIS는 경우가 많아요.Excel이 BOM이 있는 UTF-8이 아니면 UTF-8의 CSV를 제대로 읽을 수 없기 때문입니다.Ajax에서 파일을 읽을 때 특별히 지정되지 않으면 UTF-8로 CSV를 읽으므로 CSV는 Shift_JIS면 지저분해.

이러한 상황을 피하려면 CSV 인코딩에서 SJIS를 지정합니다.JavaScript 측면에서 진행하려면 XMLHttpRequest의 overrideMimeType에서 MIME Type을 덮어쓸 수 있습니다.그러나 이 방법은 InternetExplorer에서 10 이후에만 사용할 수 있습니다.override MimeType의 예는 다음과 같습니다.csv2table의 원본 코드를 다시 쓰는 것을 피하기 위해 ajaxSetup은 CSV 파일의 MIME Type을 덮어씁니다.
$.ajaxSetup({
    beforeSend: function(xhr, settings){
        if (settings.url.endsWith(".csv"))
            xhr.overrideMimeType("text/csv;charset=Shift_JIS");
    }
});
$(function(){
  $('#view0').csv2table('./data1.csv');
});
서버에서 이 문제를 처리하면 InternetExplorer 버전에 의존하지 않을 수 있습니다.서버가 Apache httpd인 경우htaccess 등AddType "text/csv; charset=Shift_JIS" .csv으로 하면 됩니다.
이 글과 비슷한 블로그 글이 몇 편 있습니다. csv2table와 Shift_JIS의 CSV의 경우 어떻게 해야 하는지에 대한 정확한 대처법에 대한 기사가 없어서 써봤습니다.

좋은 웹페이지 즐겨찾기