保存时的数据URI字符集

javascript Data URI charset when saving

本文关键字:URI 字符集 数据 保存      更新时间:2023-09-26

我在一个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:我无法更改页面字符集。

任何帮助都是感激的。由于

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

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

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

你的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是逗号分隔值的缩写

  • http://creativyst.com/Doc/Articles/CSV/CSV01.htm
  • http://en.wikipedia.org/wiki/Comma-separated_values