Springboot下載excel文件中文名亂碼問題及解決
Springboot下載excel文件中文名亂碼
通常在下載文件時會通過HttpServletResponse對象設(shè)置一些屬性以及文件名
核心代碼
如下:
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(FILE_NAME, "UTF-8") + "");
response.setHeader("Content-Disposition", "attachment;filename=" + FILE_NAME+"");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setCharacterEncoding("utf-8");紅色部分是最終正確的姿勢,最開始我是用紫色部分的代碼實現(xiàn)的,但是在用postman調(diào)用接口的時候發(fā)現(xiàn)下載下來的文件名如果有中文就會出現(xiàn)亂碼
查了一通資料,改用紅色部分實現(xiàn),但是用postman下載下來過后發(fā)現(xiàn)文件名稱是經(jīng)過編碼的。
類似這樣:
%E9%A2%84%E7%AE%97%E5%AF%BC%E5%85%A5.xlsx
于是我試了很多次還是這樣,最后偶然發(fā)現(xiàn)在瀏覽器里面調(diào)用接口下載下來的文件名是正常的,不知道postman為啥始終不行
Springboot文件下載的時候文件名出現(xiàn)問題
1.一開始文件名全是下橫線__
經(jīng)查詢之后,添加了這行代碼
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(homeworkname, "utf-8"))2.下橫線的問題解決了
但出現(xiàn)中文亂碼,出現(xiàn)%%字符
再次查找之類,將上述的代碼改成以下,解決亂碼
response.setHeader("Content-Disposition", "attachment;filename="+ homeworkname +";filename*=utf-8''"+URLEncoder.encode(homeworkname,"UTF-8"));除此之外,發(fā)現(xiàn)也可以用這種方法
response.setHeader("Content-Disposition",
"attachment;filename=" + new String(homeworkname.getBytes("utf-8"), "ISO8859-1"));總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中使用JWT生成Token進行接口鑒權(quán)實現(xiàn)方法
這篇文章主要介紹了Java中使用JWT生成Token進行接口鑒權(quán)實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Java開發(fā)中常用的 Websocket 技術(shù)參考
WebSocket 使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動向客戶端推送數(shù)據(jù),當(dāng)然也支持客戶端發(fā)送數(shù)據(jù)到服務(wù)端。2020-09-09
關(guān)于Intellij IDEA中的Version Control問題
這篇文章主要介紹了Intellij IDEA中的Version Control問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11
Spring Security 構(gòu)建rest服務(wù)實現(xiàn)rememberme 記住我功能
這篇文章主要介紹了Spring Security 構(gòu)建rest服務(wù)實現(xiàn)rememberme 記住我功能,需要的朋友可以參考下2018-03-03
java數(shù)學(xué)類Math?BigInteger?BigDecimal使用介紹
這篇文章主要為大家介紹了java數(shù)學(xué)類Math、BigInteger、BigDecimal的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06

