1. 程式人生 > >spring boot 下載檔案時,檔案亂碼問題

spring boot 下載檔案時,檔案亂碼問題

老問題了,其實有很多解決方法,今在此記錄一下,檔名亂碼時的正解:(前提:專案採用的時UTF-8編碼)

正解方法:

 String fileName = attachmentName;
 response.setContentType("multipart/form-data"); 
 //response.setContentType("multipart/form-data;charset=UTF-8");也可以明確的設定一下UTF-8,測試中不設定也可以。 
 response.setHeader("Content-Disposition", "attachment; fileName="+  fileName +";filename*=utf-8''"+URLEncoder.encode(fileName,"UTF-8"));

還有一種方式:

String fileName = attachmentName;
response.setContentType("multipart/form-data"); 
response.setHeader("Content-Disposition", "attachment;fileName="+ new String(fileName.getBytes("GB2312"),"ISO-8859-1"));  

第一中方式可以設定多個名稱(比如支援IE6時,設定英文名稱)