使用 文件下載的時候,發現 文件名稱 丟失了,而不是亂碼,解決辦法app
假設file_name的內容是:「工程文檔.docx」code
那麼下載的結果就是一個名爲「docx」的文件(文件名+後綴名),顯然,文件名中的中文字符丟失了ip
上網查了資料,大致的緣由就是header中只支持ASCII,因此咱們傳輸的文件名必須是ASCII,當文件名爲中文時,必需要將該中文轉換成ASCII。 utf-8
response.setContentType("application/octet-stream"); file_name = new String(file_name.getBytes(), "ISO-8859-1");
//或是file_name = URLEncoder.encode(file_name,"UTF-8"); response.setHeader("Content-Disposition","attachment;filename="+file_name); // 其餘代碼略
以上的轉帖的,實際上個人這裏 文檔
String fileName="績效操做shouceV1.0.zip";
//String fileNameHeader=URLEncoder.encode(fileName,"UTF-8");//不能夠的
String fileNameHeader=new String(fileName.getBytes(), "ISO-8859-1"); // 可行的get
response.reset();
response.setCharacterEncoding("utf-8");
response.setContentType("application/octet-stream; charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="
+ fileNameHeader);it