Javascript 角度下载csv文件国际字符

Javascript 角度下载csv文件国际字符,javascript,angularjs,excel,csv,url-encoding,Javascript,Angularjs,Excel,Csv,Url Encoding,嗨,我正在根据我的angular web应用程序中的一些过滤数据生成一个CSV文件 我发送到csvString的输入是: Torup Bakkegård(Middelfartvej 105);库普·布伦比;(Holkebjergvej 54) 一旦我打开excel文件,输出总是会被破坏: TorubakkegÃ¥路(Middelfartvej105)库珀布尔¸恩比(Holkebjergvej54) 然而,当我用记事本打开它时,一切正常,所以似乎是MS Excel(使用最新版本)破坏了它。 托鲁巴

嗨,我正在根据我的angular web应用程序中的一些过滤数据生成一个CSV文件

我发送到csvString的输入是: Torup Bakkegård(Middelfartvej 105);库普·布伦比;(Holkebjergvej 54)

一旦我打开excel文件,输出总是会被破坏: TorubakkegÃ¥路(Middelfartvej105)库珀布尔¸恩比(Holkebjergvej54)

然而,当我用记事本打开它时,一切正常,所以似乎是MS Excel(使用最新版本)破坏了它。 托鲁巴克路(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();
vm.downloadExcel=函数(预订){
var csvRows=[];
var csvHeading=“afhentningsaddress;Modtager”;
csvRows.push(csvHeading+“\n”);
对于(变量i=0;i
经过一番研究,我们发现我们没有提到BOM表

BOM表负责实际文件中的编码。 因此,在改变之后:

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

一切正常

感谢:GergőNagy回答:

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