IE下载时中文文件名乱码,按照网上找的解决方法。
第一种方法如下。
1.Win + R输入gpedit.msc打开组策略编辑器;(详见第3步)
2.定位到计算机配置→管理模板→windows组件→Internet Explorer→自定义用户代理字符串;(详见第4步)
3.双击打开,左上角选中已启动,下方输入字符串“MSIE 9.0”;(详见第5步)
4.点击确定;
5.重启浏览器即可。
结论:此方法未能解决问题。
我的问题比较奇怪,本地电脑IE下载是正常的,但是其他测试人员电脑下载却会乱码。
折腾几天后,找到解决方法。
原本代码:
//设置文件输出类型
response.setContentType(contentType);
response.setHeader("Content-disposition", "attachment; filename=" +
new String(storeName.getBytes("utf-8"), "ISO8859-1"));
注意上面的utf-8,问题就在这里。
本身文件在上传时写入的文件编码不是utf-8,但是在读取下载是将编码设置为utf-8所以出现乱码。
解决方法:去掉编码转换,使用本来的编码格式。
//设置文件输出类型
response.setContentType(contentType);
response.setHeader("Content-disposition", "attachment; filename=" +
new String(storeName.getBytes(), "ISO8859-1"));