2015-08-12 1 views
5

Я использую следующую функцию для экспорта массива в файлы csv в JavaScript, но китайские символы становятся беспорядочным кодом с Microsoft Excel 2013 в Windows7.Проблема UTOF-8 encoidng при экспорте файла csv, JavaScript

Открываем экспортированный файл с помощью блокнота, но он отображается мелко.

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

ответ

18

Проблема решена путем добавления BOM в начале строки CSV:

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

Хорошая работа! Спасибо – TommyDo

+0

Это помогло мне спасибо – Yousef

+0

Это помогло мне экспортировать контент в Excel в формате xls, спасибо, спасибо! – Marco

 Смежные вопросы

  • Нет связанных вопросов^_^