老問題了,其實(shí)有很多解決方法,網(wǎng)上也有很多案例,但很多都或多或少的有些小問題。今在此記錄一下,文件名亂碼時(shí)的正確解決方案:(前提:項(xiàng)目采用的時(shí)UTF-8編碼)
一般情況下,純英文的文件名都是沒問題的,但是中文的會(huì)有問題。
這個(gè)方法只能解決純中文的文件名,如果是中英混合的還是會(huì)出問題:
String fileName = "我是中文的文件名稱.doc"; response.setContentType("multipart/form-data"); //response.setContentType("multipart/form-data;charset=UTF-8");也可以明確的設(shè)置一下UTF-8,測試中不設(shè)置也可以。 response.setHeader("Content-Disposition", "attachment; fileName="+ fileName +";filename*=utf-8''"+URLEncoder.encode(fileName,"UTF-8"));
稍加改動(dòng)一下就可以完美支持中英混合的文件名了:
String fileName = "我是文件名Word文件.doc";response.setContentType("multipart/form-data"); response.addHeader("Content-Disposition","attachment;fileName=" +new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
聯(lián)系客服