4

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

chrome.tabs.create({url: 'data:text;base64,'+btoa(data), active:false});

正如我所料,这会触发我的字符串(数据)的下载。不幸的是,它似乎正在去除换行符。

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

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

编辑

我发现换行符确实出现在某些文本编辑器中。以前,我使用的是记事本,它无法识别 chrome 中的换行符,但我的其他文本编辑器 (notepad++) 似乎可以识别它们

4

2 回答 2

8

我推荐的解决方案是不使用记事本,因为它不能识别非 Windows 行格式。如果您仍然希望能够在输出中使用记事本,请将所有换行符 ( 0x0A) 替换为回车 + 换行符对 ( 0x0D 0x0A)。

chrome.tabs.create({
    url: 'data:text;base64,' + btoa(data.replace(/\n/g, '\r\n')),
    active: false
});
于 2013-07-08T18:51:28.103 回答
-1

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

于 2015-07-23T12:04:18.160 回答