Springboot下载excel文件中文名乱码问题

通常在下载文件时会通过HttpServletResponse对象设置一些属性以及文件名,核心代码如下:

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");

红色部分是最终正确的姿势,最开始我是用紫色部分的代码实现的,但是在用postman调用接口的时候发现下载下来的文件名如果有中文就会出现乱码,查了一通资料,改用红色部分实现,但是用postman下载下来过后发现文件名称是经过编码的,类似这样:%E9%A2%84%E7%AE%97%E5%AF%BC%E5%85%A5.xlsx

于是我试了很多次还是这样,最后偶然发现在浏览器里面调用接口下载下来的文件名是正常的,不知道postman为啥始终不行

你可能感兴趣的:(spring,boot,excel,后端)