【问题标题】:Angular download csv file international charactersAngular 下载 csv 文件国际字符
【发布时间】:2016-09-24 11:51:04
【问题描述】:

您好,我正在根据我的 Angular Web 应用程序中的一些过滤数据生成一个 CSV 文件。

我发送到我的 csvString 的输入是: Torup Bakkegård (Middelfartvej 105);库普布伦比; (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();

【问题讨论】:

    标签: javascript angularjs excel csv url-encoding


    【解决方案1】:

    经过一番研究,我们发现我们没有提到 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

    【讨论】:

      猜你喜欢
      • 2022-06-22
      • 2018-03-06
      • 1970-01-01
      • 2012-10-10
      • 2018-07-08
      • 1970-01-01
      • 2016-02-06
      • 2021-01-05
      • 1970-01-01
      相关资源
      最近更新 更多