Nodejs下载文件文件名中文乱码问题解决方案

最近在使用Nodejs导出下载文件时,遇到了中文文件名乱码问题,于是Google搜索+验证得出以下解决方案:

var filename = 'Nodejs中文指南.pdf';

var userAgent = (req.headers['user-agent']||'').toLowerCase();

if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) {
	res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent(filename));
} else if(userAgent.indexOf('firefox') >= 0) {
	res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + encodeURIComponent(filename)+'"');
} else {
	/* safari等其他非主流浏览器只能自求多福了 */
	res.setHeader('Content-Disposition', 'attachment; filename=' + new Buffer(filename).toString('binary'));
}


亲测浏览器:IE7+, Chrome29+, Firefox18+, Safari5.1+ 下载中文文件名正常!!

转载于:https://my.oschina.net/jsan/blog/180333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值