所以我尝试使用我的脚本从网站下载pdf文件,但问题是该文件在此过程中被破坏了,我很确定它是因为编码错误被使用。
我使用请求库下载文件,并且我已将'python'
设置为Content-type
我的代码非常简单:4
application-pdf
我需要在哪里指定用于此工作的编码?
我尝试通过正常保存打开pdf,SublimeText3 encodinghelper在Windows中说它,而我下载的是utf8。
我已经浏览了nodejs缓冲区和fs文件,并且它们不支持像windows-asd这样的编码,只有类似于' utf8'和'二进制'。
我是否可以使用其他方法获取文件?
答案 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',
}
);
}
})