博客 / 詳情

返回

記錄一次亂碼問題修復經歷!排查修復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");

      總結

  • 根據框架文檔好好學習框架的用法後再根據實例開發相關功能
  • 注意框架中的使用注意點和高級用法
  • 將高級用法與項目實際結合起來,選擇使用的最佳方案
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.