我的扩展程序中有一个按钮,触发以下代码:
chrome.tabs.create({url: 'data:text;base64,'+btoa(data), active:false});
这会触发我的字符串(数据)的下载,正如我预期的那样。不幸的是,它似乎正在剥离换行符。
我尝试过其他编码方法,包括utf-8和encodeUri()
函数。我也尝试将mimetype切换为data:text/plain
,但只是在新标签中打开(使用正确的换行符)而不是下载。
有没有办法对文字进行编码,以便保留换行符?如果没有,是否有不同的方法可以在浏览器中触发文件下载?
修改的
我发现新行确实出现在一些文本编辑器中。以前,我使用的是notepad,它不能识别chrome中的换行符,但我的其他文本编辑器(记事本++)似乎确实认出了它们
答案 0 :(得分:6)
我建议的解决方案是不使用记事本,因为它无法识别非Windows线路格式。如果您仍希望能够将记事本与输出结合使用,replace所有换行符(0x0A
)都带有回车符+换行符对(0x0D 0x0A
)。
chrome.tabs.create({
url: 'data:text;base64,' + btoa(data.replace(/\n/g, '\r\n')),
active: false
});
答案 1 :(得分:0)
对于所有试图在没有base64加密的数据URI中保留换行符的人: 这是不可能的,您必须使用base64编码。