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"));