Angular下载csv文件国际字符

您好我正在生成一个CSV文件基于我的angular度的Web应用程序中的一些过滤的数据。

我发送给我的csvString的input是:TorupBakkegård(Middelfartvej 105); CoopBrøndby; (Holkebjergvej 54);

输出总是被破坏,一旦我打开Excel文件:TorupBakkegÃ¥rd(Middelfartvej105)CoopBrøndby(Holkebjergvej54)

但是,当我用记事本打开它是好的,所以这只是MS Excel(使用最新版本)似乎毁了它。 TorupBakkegård(Middelfartvej105);CoopBrøndby(Holkebjergvej54);

我试了几个编码,看来excel根本就不在乎这里是javascript的代码:

vm.downloadExcel = function (bookings) { var csvRows = []; var csvHeading = "Afhentningsadresse;Modtager"; csvRows.push(csvHeading + "\n"); for (var i = 0; i < bookings.length; i++) { var csvRow = ""; csvRow += bookings[i].pickupAddress + ";"; csvRow += bookings[i].customerAddress + ";"; csvRows.push(csvRow + "\n"); } var csvString = csvRows.join("%0A"); var a = document.createElement('a'); a.href = 'data:application/csv;charset=Windows-1252,' + csvString; a.target = '_blank'; a.download = 'myFile.csv'; console.log(a.href); document.body.appendChild(a); a.click(); 

经过一番研究,我们发现我们没有提到物料清单。

BOM负责实际文件中的编码。 所以改变之后:

 a.href = 'data:application/csv;charset=Windows-1252,' + csvString; 

附:

  a.href = 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURI(csvString); 

一切正常。

积分去:Gergő纳吉,回答: Javascript到CSV导出编码问题