Firefox下载附件乱码的解决办法

时间:2023-03-09 02:56:13
Firefox下载附件乱码的解决办法

通过在http的header里设置fileName下载附件时,中文文件名通过chrome浏览器下载时正常,通过firefox下载时为乱码:

Firefox下载附件乱码的解决办法

原来的Java代码:

response.addHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(downloadName,"UTF-8").
replace("+", "%20").replace("%40", "@").replace("%26", "%"));

解决办法一:

将filename部分改为filename*=utf-8''+文件名

response.addHeader("Content-Disposition","attachment; filename*=utf-8''"+ URLEncoder.encode(downloadName,"UTF-8").
replace("+", "%20").replace("%40", "@").replace("%26", "%"));

解决办法二:

将文件名编码为iso-8859-1

String downloadFileName=new String(downloadName.getBytes("UTF-8"),"iso-8859-1");