Я пытаюсь импортировать файл CSV через JavaScript.Но кодировка неверна."ä, ö, ü и т. д."вероятно импортируются с ANSI вместо UTF-8.
Файл CSV экспортируется ранее мной, там мне удалось установить кодировку UTF-8.Но я не могу импортировать его правильно.Может кто-нибудь показать мне, как этот импорт должен быть сделан?
Чтобы проиллюстрировать текущую проблему:
Формат экспорта:
Männlich; Sehr geehrter; PerSie; Dr.; Jürgen; Böhler; juergen.boehler@example.com
Формат импорта:
• »¤ Münnlich; Sehr geehrter; Per Sie;Доктор; Юрген; Бюлер; juergen.boehler@example.com
Функция экспорта
function csv() {
const rows = [[geschlecht[0].value, anrede[0].value, umgangsform[0].value, titel[0].value, vorname[0].value,nachname[0].value,email[0].value ]];
var universalBOM = "\uFEFF";
var csvContent = '';
rows.forEach(function(rowArray){
let row = rowArray.join(";");
csvContent += row + "\r\n";
for (i = 1; i < titel.length; i++) {
csvContent += geschlecht[i].value + ';' + anrede[i].value + ';' + umgangsform[i].value + ';' + titel[i].value + ';' + vorname[i].value + ';' + nachname[i].value + ';' + email[i].value + "\r\n";
}
});
var link = document.createElement("a");
link.setAttribute("href", "data:text/csv;charset=utf-8," + encodeURIComponent(universalBOM+csvContent));
link.setAttribute("download", "export.csv");
document.body.appendChild(link); // Required for FF
link.click(); // This will download the data file named "export.csv".
}
Функция импорта
function readBlob(opt_startByte, opt_stopByte) {
var files = document.getElementById('files').files;
if (!files.length || !((files[0].name).endsWith(".csv"))) {
alert('Bitte eine .csv-Datei auswählen!');
return;
}
var file = files[0];
var start = parseInt(opt_startByte) || 0;
var stop = parseInt(opt_stopByte) || file.size - 1;
var reader = new FileReader();
// If we use onloadend, we need to check the readyState.
reader.onloadend = function(evt) {
if (evt.target.readyState == FileReader.DONE) { // DONE == 2
document.getElementById('textareaMails').value += evt.target.result;
}
};
var blob = file.slice(start, stop + 1);
reader.readAsBinaryString(blob);
}
document.querySelector('.readBytesButtons').addEventListener('click', function(evt) {
if (evt.target.tagName.toLowerCase() == 'button') {
var startByte = evt.target.getAttribute('data-startbyte');
var endByte = evt.target.getAttribute('data-endbyte');
readBlob(startByte, endByte);
}
}, false);