0

我在 utf-8 页面中使用这样的东西:

var data = "a\tb\tc\r\nd\te\tf";
window.location.href = "data:text/csv;charset=utf-8," + encodeURIComponent(data);

强制浏览器下载文本并保存。我工作正常,除了当我在 excel 中打开文件时它没有正确打开(它既不读取分隔符也不读取阿拉伯字符)。我需要“导入数据”以指定文件是 UTF-8,当我这样做时这可以正常工作...当我在记事本中打开文件并以 unicode 重新保存它时...它可以正常工作。有没有办法强制它从一开始就保存在 unicode 中?或使 csv 文件在 excel 中正确打开。

我试图将其更改为“charset=utf-16”,但没有成功。

PS:我无法更改页面字符集。

任何帮助表示赞赏。谢谢

4

2 回答 2

2

这就是你需要的,一个小插件:

'data:text/csv;charset=utf8,' + '\uFEFF' + encodeURIComponent(csv)

这个插件('\uFEFF')使它成为真正的“UTF-8”,没有它,它将是:“UTF-8 w/o BOM”

于 2015-04-29T03:25:02.973 回答
1

你的 JS 代码产生的是

a    b   c 
 d   e  f

但有效的应该是

a,b,c
d,e,f

在代码中

var data = "a,b,c\r\nd,e,f";

制表符分隔的格式

a    b    c
d    e    f

在代码中

var data = "a\tb\tc\r\nd\te\tf";

CSV 是逗号分隔值的缩写

于 2011-12-18T16:18:48.460 回答