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

问题描述 投票:1回答:2

我的目标是使用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

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

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

html5 line-breaks data-uri plaintext
2个回答
1
投票

使用base 64 encode it

以下是"Hello\nWorld"

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

-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.