即使使用正确的UTF-8,导出的csv中的Unicode也不正确

时间:2019-04-01 13:00:13

标签: javascript html arrays csv export-to-csv

我创建了一个小的.html来调用API并将结果下载到CSV。但是我的CSV包含Unicode编码不正确。

我尝试过包含“ \ uFEFF”,但没有取得积极的结果。

function downloadCSV(args) {
    var data, filename, link;

    var csv = convertArrayOfObjectsToCSV({
        data: ObjectArray
    });
    if (csv == null) return;

    filename = args.filename || 'export.csv';

    if (!csv.match(/^data:text\/csv/i)) {
        csv = 'data:text/csv;charset=utf-8,sep=,\n' + csv;
    }
    data = encodeURI(csv);

    link = document.createElement('a');
    link.setAttribute('href', data);

    link.setAttribute('download', filename);
    link.click();
}

如果我尝试console.log(data),它将从Unicode给我正确的字符。而且,如果我更改了Excel以unicode读取它。字符也是正确的。所以我需要以某种方式强迫我的excel以正确的方式打开文件。也许使用字节顺序掩码(BOM)-但我不确定如何。

0 个答案:

没有答案