Символы UTF-8 не отображаются должным образом в CSV - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть массив данных, который конвертируется в CSV-файл с использованием javascript.

Некоторые значения данных имеют странные символы (например, ù и õ). Эти символы поддерживаются UTF-8, который является набором символов, который я использую для своей кодировки csv. Но все же эти странные буквы отображаются неправильно в моем результирующем CSV-файле.

Например, переменные Name ( à , ù, ë ) и Juònùõ становятся:

example wrong formatting

Как я могу это исправить?

Это мой код (на основе вопроса: Как экспортировать JavaScript информацию о массиве в csv (на стороне клиента)? ) :

var data = [
    ["Name ( à , ù, ë )"],
    ["Juònùõ"]
]
var csvContent = '';
data.forEach(function(infoArray, index) {
    dataString = infoArray.join(';');
    csvContent += index < data.length ? dataString + '\n' : dataString;
});



var download = function(content, fileName, mimeType) {
    var a = document.createElement('a');
    mimeType = mimeType || 'application/octet-stream';

    if (navigator.msSaveBlob) { // IE10
        navigator.msSaveBlob(new Blob([content], {
            type: mimeType
        }), fileName);
    } else if (URL && 'download' in a) { //html5 A[download]
        a.href = URL.createObjectURL(new Blob([content], {
            type: mimeType
        }));
        a.setAttribute('download', fileName);
        document.body.appendChild(a);
        a.click();
        document.body.removeChild(a);
    } else {
        location.href = 'data:application/octet-stream,' + encodeURIComponent(content); // only this mime type is supported
    }
}

download(csvContent, 'dowload.csv', 'text/csv;encoding:utf-8,{header:true}');

1 Ответ

1 голос
/ 09 февраля 2020

Вы можете попробовать вставить метку порядка байтов в начале CSV, инициализируя csvContent следующим образом: var csvContent = '\uFEFF';. Некоторые программы, как правило, распознают файлы как кодировку UTF-8, когда они начинаются с спецификации. С другой стороны, спецификация имеет тенденцию портить заголовки при импорте файлов CSV в некоторые программы.

...