我有一个用于下载csv的javascript代码,其中包含UTF-8字符。
如果我不使用' sep =,\ r \ n',UTF-8字符会在浏览器Chrome和Mozilla中正确显示BOM字符。
但它并不适用于IE,因为所有数据都在一列中。
要解决此问题,如果我使用' sep =,\ r \ n',则UTF-8字符在所有3个浏览器中都无法正常显示。
必须通过选择编码UTF-8在excel中手动导入。
我正在寻找可以使用BOM和分隔符的解决方案,用户可以通过双击文件直接打开带有excel的csv。
代码段:
tableString = 'sep=,\r\n' + tableString;
if (navigator.appName == "Microsoft Internet Explorer") {
myFrame.document.open("text/html", "replace");
myFrame.document.write(tableString);
myFrame.document.close();
myFrame.focus();
myFrame.document.execCommand('SaveAs', true, fileName);
} else {
csvData = 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURIComponent(tableString);
var link=document.createElement('a');
link.setAttribute('style', "visibility:hidden");
link.href=csvData;
link.setAttribute('download', fileName);
link.innerHTML = "Export CSV";
document.body.appendChild(link);
link.click();
}