输出文件中的新行字符

时间:2015-11-02 16:06:06

标签: javascript string text-files newline

当我尝试将包含多行的字符串写入输出文本文件时,不会保留换行符,并且所有内容都打印在一行中。

具体来说,我有一个带有一个监听器的按钮,并且关联了这个功能:

function (e) {
    this.downloadButton.setAttribute("download", "output.txt");
    var textToSend = string1+"\r\n"+string2+"\r\n"+string3;
    this.downloadButton.setAttribute('href', 'data:text/plain;charset=utf-8,' + textToSend);
}

文件已正确下载,但string1,string2和string3在同一行。

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

我认为您可能需要对数据进行编码,您可以使用encodeURIComponent()进行编码。

试试这个:

var textToSend = string1+"\r\n"+string2+"\r\n"+string3;
textToSend = encodeURIComponent(textToSend);
this.downloadButton.setAttribute('href', 'data:text/plain;charset=utf-8,' + textToSend)

答案 1 :(得分:3)

使用encodeURIComponent()。见下面的工作示例。

var downloadButton = document.getElementById('download');
var textToSend = encodeURIComponent("string1\r\nstring2\r\nstring3");
downloadButton.setAttribute('href', 'data:text/plain;charset=utf-8,' + textToSend);
<a id="download" download="output.txt">Download</a>