对于带有BOM和Seperator的UTF-8字符,Javascript CSV下载不起作用

我有一个javascript代码来下载csv,它有UTF-8字符。

如果我不使用'sep =,\ r \ n',则在浏览器Chrome和Mozilla中,UTF-8字符会正确显示,并带有BOM char。

但它不适用于IE,因为所有的数据都在一列中。

为了解决这个问题,如果我使用'sep =,\ r \ n',那么UTF-8字符在所有3个浏览器中都不能正确显示。

必须通过select编码UTF-8手动导入到Excel中。

我正在寻找一个可以使用BOM和分隔符的解决scheme,用户可以通过双击文件直接打开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(); }