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

时间:2015-06-25 02:02:51

标签: node.js pdf encoding utf-8

所以我尝试使用我的脚本从网站下载pdf文件,但问题是该文件在此过程中被破坏了,我很确定它是因为编码错误被使用。

我使用请求库下载文件,并且我已将'python'设置为Content-type

我的代码非常简单:4

application-pdf

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

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

我已经浏览了nodejs缓冲区和fs文件,并且它们不支持像windows-asd这样的编码,只有类似于' utf8'和'二进制'。

我是否可以使用其他方法获取文件?

2 个答案:

答案 0 :(得分:8)

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

fs.writeFileSync("10111.pdf", body,'binary');

由于我将编码格式设置为二进制,如果您尝试下载可以将编码设置为null的pdf,则可以根据需要使用正确的编码格式。

希望这会有所帮助

答案 1 :(得分:-2)

为了正确编写PDF,您可能必须在base64中对steam进行编码。 有一个很好的答案here

您可以查看writeFileSync here

的文档

以下是代码的外观:

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,
      {
        encoding :'base64',
      }
    );
  }
})