1. 程式人生 > 其它 >記錄一次亂碼問題修復經歷!排查修復Poi-tl使用HttpServletResponse匯出Word亂碼問題

記錄一次亂碼問題修復經歷!排查修復Poi-tl使用HttpServletResponse匯出Word亂碼問題

問題

  • Poi-tlHttpServletResponse匯出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");
    

總結

  • 根據框架文件好好學習框架的用法後再根據例項開發相關功能
  • 注意框架中的使用注意點和高階用法
  • 將高階用法與專案實際結合起來,選擇使用的最佳方案