safari下載中文文件名亂碼


 

原因:響應頭設置content-disposition,主要遵循 RFC 5987標准。

response.setHeader("content-disposition","attachment;filename*=UTF-8''" + URLEncoder.encode(fileName,"UTF-8"));

 

說明:

content-disposition 消息頭

指示回復的內容該以何種形式展示,是以內聯的形式(即網頁或者頁面的一部分),還是以附件的形式下載並保存到本地。 

作為消息主體中的消息頭

在HTTP場景中,第一個參數或者是inline(默認值,表示回復中的消息體會以頁面的一部分或者整個頁面的形式展示),

或者是attachment(意味着消息體應該被下載到本地;大多數瀏覽器會呈現一個“保存為”的對話框,將filename的值預填為下載后的文件名,假如它存在的話)。

Content-Disposition: inline
Content-Disposition: attachment
Content-Disposition: attachment; filename="filename.jpg"

作為multipart body中的消息頭

在HTTP場景中。第一個參數總是固定不變的form-data;附加的參數不區分大小寫,並且擁有參數值,參數名與參數值用等號(=)連接,參數值用雙引號括起來。參數之間用分號(;)分隔。

Content-Disposition: form-data
Content-Disposition: form-data; name="fieldName"
Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"

 

參考文檔:

https://segmentfault.com/q/1010000012860962

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM