1. 程式人生 > >檔案下載中文檔名無法顯示問題

檔案下載中文檔名無法顯示問題

在工作中將生成好的pdf位元組流寫回前端響應下載時檔名顯示有問題。

在將返回前端下載的檔名修改為中文後,下載的檔名字未顯示

如:
原下載名:"download.pdf" 修改後 "下載.pdf"

獲得的附件下載顯示為".pdf",缺失了檔名,出現這種情況後查閱相關資料得到:
暫時可信的原因為:header中只支援ASCII,所以在傳輸中的中文不是該編碼方式,即會出現中文檔名顯示缺失的情況。

使用下面的轉碼能夠達到目的:

IE下:

downloadFileName = new String(downloadFileName.getBytes(),"ISO-8859-1");
非IE:

String downloadFileName = URLEncoder.encode("下載.pdf","UTF-8");//直接使用new String重新建立物件不能實現