Угловая загрузка 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 ответ:
После небольшого исследования, мы выяснили, что мы не упомянули в спецификации.
Спецификация отвечает за кодировку в фактическом файле. Итак, после изменения:
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 кодировку