将UTF-8写入文件并使用FileSaver.js下载

时间:2017-01-27 18:05:25

标签: javascript encoding utf-8

我一直致力于制作分布式文件系统,并且今天停止尝试编写返回文件的内容供浏览器下载。

我的系统发送文件数据请求,并获取整个UTF-8编码二进制内容的字符串作为响应。然后我尝试使用FileSaver.js来编写和下载此内容。

目前仅适用于.txt文件。我怀疑它与编码和Blob对象的制作方式有关,我认为它只是将UTF-8作为文本写入每个文件,这就是为什么它适用于.txt而不是别的。我已经尝试将响应转换为byteArrays或使用File对象,但没有任何作用。

以下是执行请求并处理响应的代码:

$.ajax({
  type: "POST",
  url: "http://localhost:3040/read",
  data: {
    data: data
  },
  xhrFields: {
    withCredentials: true
  },
  success: function(response) {
    var FileSaver = require('file-saver');
    var blob = new Blob([response], {type: "application/octet-stream"});
    FileSaver.saveAs(blob, filename);
  }
});

响应输出的小片段(在本例中为png图像):

PNG
\u1a
\u0\u0\u1a
IHDR\u0\u0\u2î\u0\u0\u56Eµ¤Q\u0\u0\u0\u1sRGB\u0®Î\u1cé...

0 个答案:

没有答案