Angular 下载国际字符csv文件
Angular download csv file international characters
您好,我正在根据 angular 网络应用程序中的一些过滤数据生成 CSV 文件。
我发送到我的 csvString 的输入是:
Torup Bakkegård(米德尔法特维伊 105); Coop 布伦比; (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。
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
您好,我正在根据 angular 网络应用程序中的一些过滤数据生成 CSV 文件。
我发送到我的 csvString 的输入是: Torup Bakkegård(米德尔法特维伊 105); Coop 布伦比; (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。
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