2015-08-12 10 views
5

Ich benutze die folgende Funktion, um ein Array zu einem CSV-Dateien in JavaScript zu exportieren, aber die chinesischen Zeichen werden chaotisch Code mit Microsoft Excel 2013 in Windows7.UTF-8 Codierung Problem beim Exportieren von CSV-Datei, JavaScript

Ich öffne die exportierte Datei mit einem Notizblock, aber es zeigt fein an.

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); 
    } 
} 

Antwort

18

Problem durch Zugabe von BOM am Beginn der csv Zeichenfolge gelöst:

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

Gute Arbeit! Danke – TommyDo

+0

Dieses half mir danke – Yousef

+0

Es half mir, Inhalt zu exportieren, um im xls Format auch zu übertreffen, danke! – Marco

Verwandte Themen