如何将换行符添加到数据:text/plain URI?

How can line breaks be added to a data:text/plain URI?

我的目标是使用 HTML5 的 <a download> tag/attribute 中的 data URI 生成一个带有换行符的文本文件。目前换行符似乎被忽略了。

下面是使用 download 的 HTML5 属性的示例,其中输出是带有 link 的 HTML 文件。单击时,link 可用于打开或保存文件。

使用 PHP 生成此类下载的示例 link:

<?php
    //generate a string line with line breaks
    //i.e. using PHP:
    //where PHP_EOL is "The correct 'End Of Line' symbol for current platform"
    $content = "line" . PHP_EOL . "line"; 
?>

<a download="a.txt" href="data:text/plain;utf8,<?=$content?>">Download</a>

尽管字符串中有换行符,但目前我的输出是:

lineline

当预期输出为:

line
line

使用十六进制检查字符串,它确实有字符 0A 0D,代表 CR 和 LF,因此它们确实在 <a download> 标记之前。

有没有办法强制在下载的文件中看到换行符? 如果不是,这是 HTML 的 download 标签的限制吗?

您在哪个程序中打开文件?是记事本吗?这可能是个问题...

使用base 64 encode it

以下是"Hello\nWorld"

<a download="foo.txt"
href="data:text/plain;base64,aGVsbG8Kd29ybGQ=">
    Download
</a>