nodejs返回下载文档,文档名称出现汉字出现乱码解决

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

        if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) {

            res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent(filename));

            res.download(path,encodeURIComponent(filename),function(err){

              if(err){

                console.log(err);

              }

            }); 

        } else if(userAgent.indexOf('firefox') >= 0) {

            res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + new Buffer(filename).toString('binary')+'"');

            res.download(path,new Buffer(filename).toString('binary'),function(err){

              if(err){

                console.log(err);

              }

            }); 

        } else if(userAgent.indexOf('gecko') >= 0) {  //ie11

            res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + encodeURIComponent(filename)+'"');

            res.download(path,encodeURIComponent(filename),function(err){

              if(err){

                console.log(err);

              }

            }); 

        } else {

            /* safari等其他非主流浏览器只能自求多福了 */

            res.setHeader('Content-Disposition', 'attachment; filename=' + new Buffer(filename).toString('binary'));

            res.download(path,new Buffer(filename).toString('binary'),function(err){

              if(err){

                console.log(err);

              }

            }); 

        }       


你可能感兴趣的:(nodejs返回下载文档,文档名称出现汉字出现乱码解决)