Nodejs下載文件文件名中文亂碼問題解決方案

最近在使用Nodejs導出下載文件時,遇到了中文文件名亂碼問題,因而Google搜索+驗證得出如下解決方案: chrome

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+ 下載中文文件名正常!!
瀏覽器

相關文章
相關標籤/搜索