您好我在我的角度网络应用中根据一些过滤后的数据生成了一个CSV文件。
我发送给我的csvString的输入是: 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();
答案 0 :(得分:2)
经过一番研究后,我们发现我们没有提到BOM。
BOM负责实际文件中的编码。 所以改变之后:
a.href = 'data:application/csv;charset=Windows-1252,' + csvString;
使用:
a.href = 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURI(csvString);
一切正常。
致信:GergőNagy回答: Javascript to csv export encoding issue