2015-08-12 12 views
5

Tôi sử dụng hàm bên dưới để xuất mảng thành tệp csv bằng JavaScript, nhưng ký tự Trung Quốc trở thành mã lộn xộn với Microsoft Excel 2013 trong Windows7.UTF-8 encoidng phát hành khi xuất tệp csv, JavaScript

Tôi mở tệp đã xuất bằng notepad nhưng nó hiển thị mịn.

function arrayToCSVConvertor(arrData, reportTitle) { 
    var CSV=''; 
    arrData.forEach(function(infoArray, index){ 
     var dataString = infoArray.join(","); 
     dataString= dataString.split('\n').join(';'); 
     CSV += dataString+ "\n"; 
    }); 

    if (CSV == '') { 
     alert("Invalid data"); 
     return; 
    } 

    //create a link and click, remove 
    var link = document.createElement("a"); 
    link.id="lnkDwnldLnk"; 

    //this part will append the anchor tag and remove it after automatic click 
    document.body.appendChild(link); 

    var csv = CSV; 

    var blob = new Blob([csv], { type: ' type: "text/csv;charset=UTF-8"' });//Here, I also tried charset=GBK , and it does not work either 
    var csvUrl = createObjectURL(blob); 

    var filename = reportTitle+'.csv'; 

    if(navigator.msSaveBlob){//IE 10 
     return navigator.msSaveBlob(blob, filename); 
    }else{ 
     $("#lnkDwnldLnk") 
      .attr({ 
       'download': filename, 
       'href': csvUrl 
      }); 
     $('#lnkDwnldLnk')[0].click(); 
     document.body.removeChild(link); 
    } 
} 

Trả lời

18

Giải quyết vấn đề bằng cách thêm BOM vào lúc bắt đầu của chuỗi csv:

var csv = "\ufeff"+CSV; 
+0

Good job! Cảm ơn bạn – TommyDo

+0

Điều này đã giúp tôi cảm ơn – Yousef

+0

Điều đó đã giúp tôi xuất nội dung xuất sắc ở định dạng xls, cảm ơn! – Marco

Các vấn đề liên quan