Угловая загрузка csv файла международные символы


Привет я создаю CSV-файл на основе некоторых отфильтрованных данных в моем angular web app.

Входные данные, которые я посылаю в свою csv-строку, являются: Torup Bakkegård (Middelfartvej 105); Coop Brøndby; (Holkebjergvej 54);

Вывод всегда разрушается, как только я открываю файл excel: TorupBakkegà rd 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();
1 2

1 ответ:

После небольшого исследования, мы выяснили, что мы не упомянули в спецификации.

Спецификация отвечает за кодировку в фактическом файле. Итак, после изменения:

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 в csv кодировку