生成翻译CSV文件

时间:2018-12-27 18:37:20

标签: javascript excel csv character-encoding french

我正在使用ajax / javascript生成英语到法语的翻译csv文件。 问题是我的CSV文件包含奇怪的字符。

我认为我必须在Excel中更改一些选项吗?

我生成的CSV文件:   My generated CSV file

“ 2月”应为“Février”,并且 “金属”应为“金属”

谢谢:)

这是我正在使用的功能

function exportToCsv(filename, rows) {
var processRow = function (row) {
    var finalVal = '';
    for (var j = 0; j < row.length; j++) {
        var innerValue = row[j] === null ? '' : row[j].toString();
        if (row[j] instanceof Date) {
            innerValue = row[j].toLocaleString();
        };
        var result = innerValue.replace(/"/g, '""');
        if (result.search(/("|,|\n)/g) >= 0)
            result = '"' + result + '"';
        if (j > 0)
            finalVal += ',';
        finalVal += result;
    }
    return finalVal + '\n';
};

var csvFile = '';
for (var i = 0; i < rows.length; i++) {
    csvFile += processRow(rows[i]);
}

var blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });
if (navigator.msSaveBlob) { // IE 10+
    navigator.msSaveBlob(blob, filename);
} else {
    var link = document.createElement("a");
    if (link.download !== undefined) { // feature detection
        // Browsers that support HTML5 download attribute
        var url = URL.createObjectURL(blob);
        link.setAttribute("href", url);
        link.setAttribute("download", filename);
        link.style.visibility = 'hidden';
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
    }
}
}

2 个答案:

答案 0 :(得分:1)

这是Excel多年来存在的问题。
您可以做的是在Google Sheets中打开导入/粘贴工作表,然后以CSV格式导出。
如果您使用的是Windows,另一个选择是在记事本中打开工作表,然后选择File -> Save As并选择ANSI编码。

答案 1 :(得分:0)

这适用于我测试过的所有语言! Open google docs, File, Open, chose Upload Tab and drag and drop your CSV file