HTML 数据:附件/转义空格



我有一个简单的函数,可以将浏览器数据下载到CSV:

// 3 cols, 2 rows
var data = '"a b c", "d, e, f", "g, h, i" %0A "a b c", "d, e, f", "g, h, i"';
var a = document.createElement('a');
a.href = 'data:attachment/csv;charset=utf-8,' + data;
a.target = '_blank';
a.download = 'labels.csv';
document.body.appendChild(a);
a.click();

这很好用,我得到了一个 CSV 文件。但是,在查看下载文件时,结果会折叠每个单元格中的空格:

abc def ghi
abc def ghi

当我查看生成的a标签时,空格仍然存在,因此下载/转换为.csv会降低它。

我无法弄清楚或找到任何关于如何确保空间不会像那样坍塌的方法。我可以使用哪种转义/编码?

--

这家伙在这里遇到了同样的问题(删除了空格),但没有有效的解决方案。

好的,我想通了。

组装数据时,您必须单独转义每一行,这似乎可以解决问题:

for (var i = 0; i < rows.length; ++i) {
  rows[i] = escape(rows[i]);
}
a.href = rows.join('%0A');

最新更新