記錄一次亂碼問題修復經歷!排查修復Poi-tl使用HttpServletResponse匯出Word亂碼問題
阿新 • • 發佈:2022-01-02
問題
- Poi-tl中HttpServletResponse匯出Word亂碼問題:
- 檔名使用中文,中文名亂碼
- 匯出的檔案下載後亂碼
原因
- 檔名中文亂碼:
- 沒有設定檔名的編碼規則
- 檔案下載亂碼:
- 在RESTful中的Controller層錯誤地使用了PostMapping
解決辦法
- 檔名亂碼:
String attachName = new String(("Xxx.docx").getBytes(), "ISO-8859-1"); response.setHeader("Content-disposition", "attachment;filename=" + attachName);
- 檔案下載亂碼:
- Word匯出的介面使用GetMapping
- 使用Request URL來獲取檔案的下載
- 獲取Word模版路徑:
- 使用InputStream工具類獲取路徑的檔案
// 使用InputStream流獲取Word模版 InputStream fis = this.getClass().getResourceAsStream("/template/xxxTemplate.docx");
總結
- 根據框架文件好好學習框架的用法後再根據例項開發相關功能
- 注意框架中的使用注意點和高階用法
- 將高階用法與專案實際結合起來,選擇使用的最佳方案