如何通过nodejs以正确的编码保存pdf

dit*_*lav 3 pdf encoding utf-8 node.js

所以我试图用我的脚本从网站下载一个pdf文件,但问题是文件在这个过程中被破坏了,我很确定这是因为使用了错误的编码.

我正在使用请求lib下载文件,我已设置Content-typeapplication-pdf

我的代码非常简单:4

var fs = require('fs');
var request = require("request");


request({uri: 'xxxxxxxxxxxxxx.pdf', headers: { 'Content-type' : 'applcation/pdf' }} , function (error, response, body) {
  if (!error && response.statusCode == 200) {
    fs.writeFileSync("10111.pdf", body);
  }
})
Run Code Online (Sandbox Code Playgroud)

我需要在哪里指定用于此工作的编码?

我尝试通过正常保存打开pdf,SublimeText3 encodinghelper说它在Windows中,而我下载的是utf8.

我已经浏览了nodejs缓冲区和fs文件,并且它们不支持像windows-asd那样的编码,只有像'utf8'和'binary'这样的通用编码.

我应该使用不同的方法来获取文件吗?

Par*_*dav 9

我知道它已经很晚了但我今天看到了你的问题所以我正在回答它,以便其他人可以从中获得帮助.您可以在尝试编写文件时添加编码ie-:

fs.writeFileSync("10111.pdf", body,'binary');
Run Code Online (Sandbox Code Playgroud)

正如我在这里将编码格式设置为二进制,如果您尝试下载可以将编码设置为null的pdf,则可以根据您的要求使用正确的编码格式.

希望这会有所帮助

  • 为我修复它的事情是在请求中添加`encoding:null` (3认同)