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

Gui*_*ent 6 javascript html5 filereader

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

<form enctype="multipart/form-data">
    <input type="file" id="file" name="file">
</form>
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

这段代码打印

"line1line2"
Run Code Online (Sandbox Code Playgroud)

除了我的文件内容是

line1
line2
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到 ?

line1\nline2
Run Code Online (Sandbox Code Playgroud)

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

FileReader doc

编辑:

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

在此输入图像描述 在此输入图像描述

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

Céd*_*ric 8

这是一个Firefox错误,文本文件只包含'CR'作为行尾.

这与MacOSX无关,而与Firefox有关.如果您的文件仅包含'CR'而不是'LF或'CR/LF',则在Windows下具有相同的结果.

你必须用'LF'(或'CR/LF')代替'CR'出现:

    alert(event.target.result.replace(/\r/g, "\n"));
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢,我在bugzilla上创建了一个bug // https://bugzilla.mozilla.org/show_bug.cgi?id=918667 (2认同)