Internet Explorer中的execCommand使用USC-2 Little endian编码保存csv文件,如何使用UTF-8格式保存?

时间:2014-08-20 10:06:02

标签: javascript html csv utf-8 character-encoding

execCommand总是以USC-2小印度格式保存.csv文件,但我希望它采用UTF-8格式。此外,当我将文件名更改为.txt时,编码正确为UTF-8。如何为csv文件激活UTF-8编码?我确实尝试将字符集设置为UTF-8,但它没有用。

var oWin = window.open("about:blank", "_blank");
oWin.document.open("application/csv", "replace");
oWin.document.charset = "utf-8";
oWin.document.write(csvText);
oWin.document.close();
var success = oWin.document.execCommand('SaveAs', true, 'fileName.csv');
oWin.close();
alert(success);

使用适当的内容生成文件,但编码不是UTF-8,因此excel无法识别列,整行显示在单列中。 生成文件(fileNam.csv):

"Column One","Column Two","Column Three"
"row1 Col1","row1 Col2"
"row2 Col1","row2 Col2","row2 Col3"
"row3 Col1","row3 Col2","row3 Col3"

我想使用javascript并专门针对IE进行此操作。我知道对于其他浏览器,可以使用HTML5下载标记。

1 个答案:

答案 0 :(得分:2)

以下是缺失的内容,我们需要明确说出什么是分隔符。在写入文件之前应添加以下行

csvText = 'sep=,\r\n' + csvText;

AndrewB - Convert HTML table to CSV in jQuery ,是列分隔符,\ r \ n是行分隔符。另外,如果你使用c / c ++编写它,我们需要将\ r \ n转义为\ r \ n并根据上下文使用'或'