记录一次乱码问题修复经历!排查修复Poi-tl使用HttpServletResponse导出Word乱码问题
问题
- 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");
总结
- 根据框架文档好好学习框架的用法后再根据实例开发相关功能
- 注意框架中的使用注意点和高级用法
- 将高级用法与项目实际结合起来,选择使用的最佳方案