我正在从互联网(从 Box)下载图像,并且我得到了不同的 body.length
和 header content-length
。
响应 header content-length
等于75739
。
但 body.length
等于 72818
。
现在看看这个,如果我运行 request(url).pipe(fs.createWriteStream('image.jpg'))
,图像会得到 75739 并正确打开。
尽管如此,如果我运行 fs.writeFileSync('image.jpg', body)
,图像会得到 137515 并且无法正确打开。
我也做了这个要点,所以你可以自己测试:https://gist.github.com/Daymannovaes/54663e0718f0ded40285d0666f937179
我不知道编码是否是问题,但我尝试获取所有编码的字节长度,但没有一个是正确的大小:
正文长度 (ascii) 72818
正文长度 (utf8) 137515
正文长度 (utf16le) 5636
body 长度(ucs2)145636
主体长度(base64)54613
body 长度(拉丁语1)72818
主体长度(二进制)72818
主体长度(十六进制)36409
提前致谢!
最佳答案
我找到了答案。感谢我的一个 friend 。我不知道是否是请求库的错误,但如果我在请求时设置 {encoding: 'binary' }
,一切都会正常工作。
关于javascript - Nodejs 不同的内容长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41902075/