天天看点

nodeJS IOS手机和平板端在微信中下载文件时,弹出框中文件名乱码解决方案(Content-disposition:attachment; filename)

今天做项目的时候遇见一个问题。下载文件时在谷歌,Edge和火狐中文件名是正确显示的。但是在IOS端(这里我只是测试了平板和手机,苹果电脑的safari没有测试)微信弹窗中会出现%E4%BA%BF%E6%AC%A7%E6%99%BA%E5%BA%93%20WIA2020%20%E5%85%A8%E7%90%83%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E7%A7%91%E6%8A%80%E5%88%9B%E6%96%B0TOP50_2021-01-12.pdf这种乱码的情况,

解决方案如下

res.setHeader('Content-disposition', `attachment; filename=${Buffer.from(title,'utf-8').toString('binary')}.pdf;filename*=utf-8''${Buffer.from(title,'utf-8').toString('binary')}.pdf`);
  
           

通过上面代码可以解决乱码问题

nodeJS IOS手机和平板端在微信中下载文件时,弹出框中文件名乱码解决方案(Content-disposition:attachment; filename)

如果错误欢迎指出

继续阅读