生成的CSV中没有换行符

时间:2016-09-23 01:20:44

标签: javascript csv

在我的页面中,我正在编写以下脚本以生成要下载的CSV。 我的字符串'str'有一些新的行字符“\ n”,但生成的csv都在一行中。我错过了什么吗?

            var fileContent = "data:text/csv;charset=utf-8," + str;
            var a = document.createElement('a');
            a.href = fileContent;
            a.download = filename;
            var e = document.createEvent('MouseEvents');
            e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
            a.dispatchEvent(e);

1 个答案:

答案 0 :(得分:3)

您需要将数据转换为base64

在大多数浏览器中,它就像

一样简单
var fileContent = "data:text/csv;charset=utf-8;base64," + btoa(str);
  

但是,如果您有Unicode字符串,则会失败。请考虑这一点 - source = http://mdn.beonex.com/en/DOM/window.btoa.html#Unicode_Strings

function utf8_to_b64( str ) {
    return window.btoa(unescape(encodeURIComponent(str)));
}
var fileContent = "data:text/csv;charset=utf-8;base64," + utf8_to_b64(str);