“fetch”方法与“FileReader”具有相同的功能吗?

And*_*rey 5 javascript fetch filereader

我设法逐字节读取文本文件,并将字符集从 windows-1251 更改为 Unicode,以便通过input元素和FileReader. 现在我想对来自我的服务器的文件做同样的事情,通过fetch. 有可能这样做吗?(这fetch将在通过 HTTP 提供的页面中,并且 URL 将是相对的,例如fetch("raw/graph_tab.txt") - 我不会像使用input字段和那样尝试直接从最终用户的机器读取文件FileReader)。

工作代码块('windows-1251.js'库由 Mathias Bynens 创建):

<input type="file" id="file"/>
<script type="text/javascript">
        document.getElementById("file").addEventListener("change", readFile, false);

        function readFile (evt) {
            var files = evt.target.files;
            var file = files[0];           
            var reader = new FileReader();
            reader.onload = function(event) {
                console.log(windows1251.decode(event.target.result));            
            }};
Run Code Online (Sandbox Code Playgroud)

Kai*_*ido 3

如果您的意思是您想要encoding该方法的参数FileReader.readAsText(Blob, encoding),那么您可以在响应的标头中设置一个charset参数。Content-Type

如果出于某种原因这是不可行的,那么您必须使用 Blob 的Body.blob()方法将Response对象消费到 Blob ,然后将生成的Blob传递给 FileReader。

否则,不,即使Response对象具有与FileReader类似的方法,该text()方法也不提供编码选项...