Google chrome extension 在数据中保留换行符:文本URI

Google chrome extension 在数据中保留换行符:文本URI,google-chrome-extension,text-files,data-uri,Google Chrome Extension,Text Files,Data Uri,我的扩展名中有一个按钮,可触发以下代码: chrome.tabs.create({url: 'data:text;base64,'+btoa(data), active:false}); 这会触发我的字符串(数据)的下载,正如我预期的那样。不幸的是,它似乎在剥离换行符 我尝试过其他编码方法,包括utf-8和encodeUri()函数。我还尝试将mimetype切换到数据:text/plain,但这只是在一个新选项卡中打开(使用正确的换行符),而不是下载 有没有办法对我的文本进行编码,以便保留换

我的扩展名中有一个按钮,可触发以下代码:

chrome.tabs.create({url: 'data:text;base64,'+btoa(data), active:false});
这会触发我的字符串(数据)的下载,正如我预期的那样。不幸的是,它似乎在剥离换行符

我尝试过其他编码方法,包括utf-8和
encodeUri()
函数。我还尝试将mimetype切换到
数据:text/plain
,但这只是在一个新选项卡中打开(使用正确的换行符),而不是下载

有没有办法对我的文本进行编码,以便保留换行符?如果没有,是否有其他方法触发浏览器中的文件下载

编辑


我发现新行确实出现在一些文本编辑器中。以前,我使用的记事本无法识别chrome中的换行符,但我的另一个文本编辑器(notepad++)似乎能够识别它们

我建议不要使用记事本,因为它无法识别非Windows行格式。如果您仍然希望能够在输出中使用记事本,则所有换行符(
0x0A
)都带有回车符+换行符对(
0x0D 0x0A

chrome.tabs.create({
url:'data:text;base64'+btoa(data.replace(/\n/g,'\r\n')),
活动:错误
});

对于所有试图在不使用base64加密的情况下在数据URI中保留换行符的用户:
这是不可能的,您必须使用base64编码。

真不敢相信我忘记了\r\n。谢谢这个答案是不正确的,通过URL编码的URL,可能有没有base64编码的换行符。例如:
data:text/html,a%0A%0Db
另外,base64是编码,而不是加密。实际上,这是正确的答案。问题是关于text/plain,而不是text/html。text/plain不支持换行符,您必须对其进行base64编码。@RobW它应该是
%0D%0A
。这似乎奏效了。