javascript - 使用 FileReader 导入 javascript 文件时如何保留换行符?

标签 javascript html filereader

我想知道如何使用 FileReader 对象检索保留特殊字符的文件内容。

<form enctype="multipart/form-data">
    <input type="file" id="file" name="file">
</form>
<script>
    $('#file').change(function () {
        var file = document.getElementById('file').files[0];

        var reader = new FileReader();

        reader.onload = function (event) {
            var file_content = event.target.result;
            console.log(file_content);
        }

        reader.readAsBinaryString(file);
    }
</script>

此代码打印

"line1line2"

除了我的文件内容是

line1
line2

我怎样才能得到?

line1\nline2

我尝试了 readAsBinaryString 和 readAsText 方法,但没有成功。难道我做错了什么 ? 谢谢

FileReader doc

编辑:

JSfiddle 上的一个例子 http://jsfiddle.net/yTgp7/

enter image description here enter image description here

该问题仅存在于 mac Os X 上的 Firefox

最佳答案

这是一个 Firefox 错误,文本文件仅包含“CR”作为行尾。

这与 MacOSX 无关,而是与 Firefox 相关。如果您的文件仅包含“CR”而不是“LF”或“CR/LF”,则在 Windows 下会得到相同的结果。

您必须将出现的“CR”替换为“LF”(或“CR/LF”):

    alert(event.target.result.replace(/\r/g, "\n"));

这是您的 jsFiddle 的工作版本:http://jsfiddle.net/Y56Tq/3/

关于javascript - 使用 FileReader 导入 javascript 文件时如何保留换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898036/

相关文章:

javascript - 在 plotly 中更改特定点的颜色

javascript - 如何处理这些异步函数(设计模式?)

javascript - 如何将此 jQuery 代码转换为 ReactJS 代码(React、jQuery、HTML、CSS)

typescript - 浏览器中的 SheetJS (js-xlsx) : read a workbook from a Blob

java - 如何通过java获取txt的列内容

javascript - 如何将类型添加到 for with typescript 中定义的变量?

javascript - 映射数学和 Javascript

javascript - 从 URL 获取外部页面的源 DOM/HTML

html - 如何让背景图片覆盖整个页面

java - wait()、notify() - 用于快速读取文件