jquery.csv2table.js에서 Shift_JIS의 CSV 표시
<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의 경우 어떻게 해야 하는지에 대한 정확한 대처법에 대한 기사가 없어서 써봤습니다.
Reference
이 문제에 관하여(jquery.csv2table.js에서 Shift_JIS의 CSV 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fujieda/items/a4eeb2eb8436e43e129a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)