带有BOM和分隔符的UTF-8字符的Javascript CSV下载不起作用

时间:2015-05-19 13:47:07

标签: javascript excel csv utf-8 download

我有一个用于下载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();
                }

0 个答案:

没有答案