2015-08-12 18 views
5

Ben JavaScript csv dosyalarına dizisi dışa aktarmak için aşağıdaki işlevini kullanın, ancak Çince karakterler Windows7 Microsoft Excel 2013 ile dağınık kod haline gelir.UTF-8 encoidng sorunu, JavaScript

Ben bir not defteri ile aktarılan dosyayı açmak ama ince gösterir. CSV dize başında ekleyerek BOM çözülmesi

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

cevap

18

Sorun:

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

İyi iş! Teşekkürler – TommyDo

+0

Bu yardımcı oldu bana teşekkürler – Yousef

+0

Ayrıca xls formatında excel içerik ihraç yardımcı oldu, teşekkürler! – Marco