Nodejs的内容长度不同

时间:2017-01-27 19:59:47

标签: javascript node.js content-length

我正在从互联网上下载图片(来自Box),我得到了不同的body.length和标题content-length

回复标题content-length等于75739。 但body.length等于72818

现在看看这个,如果我运行request(url).pipe(fs.createWriteStream('image.jpg')),图像得到75739并正确打开。

Altough,如果我运行fs.writeFileSync('image.jpg', body),图像得到137515并且无法正确打开。

我也做了这个要点,所以你可以自己测试:https://gist.github.com/Daymannovaes/54663e0718f0ded40285d0666f937179

我不知道编码是否有问题,但我尝试使用所有编码获取byteLength,但没有一个是正确的大小:

length of the body (ascii) 72818 length of the body (utf8) 137515 length of the body (utf16le) 5636 length of the body (ucs2) 145636 length of the body (base64) 54613 length of the body (latin1) 72818 length of the body (binary) 72818 length of the body (hex) 36409

提前致谢!

1 个答案:

答案 0 :(得分:1)

我找到了答案。感谢我的一位朋友。我不知道请求库是否有错,但如果我在请求中设置{ encoding: 'binary' },一切正常。