Node.js http模块,http响应头编码的坑
 发布于 8 年前  作者 zengming00  3676 次预览  最后一次回复是 8 年前  来自 分享 

在做爬虫下载文件时,别人的服务器会把中文文件名返回在http响应头中,结果nodejs乱码了

QQ五笔截图未命名.png

经过一番痛苦的研究,发现是 http.request() 默当成ISO-8859-1来处理了,并且没有设置编码的办法,正确的编码应该是UTF8, 只好尝试恢复

解决办法

		  let filename = location.substring(location.lastIndexOf('=') + 1);
          filename = Buffer.from(filename, 'binary').toString();