我正在使用以下代码创建一个用于从 javascript 下载的文本文件:
var lineFeed = "\r\n";
var errorFile = "";
errorFile = "This is a test" + linefeed;
errorFile = errorFile + "Line 2";
var link = document.createElement("a");
link.download = 'test_errors.csv';
link.href = 'data:application/text/html,' + errorFile;
document.body.appendChild(link);
link.click();
// Cleanup the DOM
document.body.removeChild(link);
link = null;
它在 Chrome 中按预期工作,但从 Firefox 下载的文件不返回换行符和回车符。知道我是否需要另一个转义字符或其他字符吗?
最佳答案
显然浏览器对待空白的方式不同。 base64 编码可能是最安全的,但您可能只使用 url 编码。
使用“%0D%0A”代替“\r\n”。但是,因为您可能拥有真实数据,并且真实数据可能包含其他破坏事物的字符(例如引号字符),所以我建议您对整个字符串进行 url 编码:
link.href = 'data:application/text/html,' + encodeURIComponent(errorFile);
关于Javascript 导出文本文件在 Firefox 中无法识别\r\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49372533/