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

时间:2019-03-05 15:57:31

标签: html5 line-breaks data-uri plaintext

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

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

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

<?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标签的限制吗?

2 个答案:

答案 0 :(得分:1)

使用base 64 encode it

以下是"Hello\nWorld"

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

答案 1 :(得分:-2)

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