问题:测试人员使用postman工具或者开发者工具导出csv显示乱码,但是导出的csv文件用excel打开是正常的
乱码图片:
显示正常图片:
主要原因:是我们在代码中设置返回的格式为UTF-8造成的,把这个格式设置成GBK就正常显示了(PS:csv文件创建时是以GBK的格式创建的,这就是主要原因)
// 设置response的Header
response.setCharacterEncoding("UTF-8");//Content-Disposition的作用:告知浏览器以何种方式显示响应返回的文件,用浏览器打开还是以附件的形式下载到本地保存//attachment表示以附件方式下载 inline表示在线打开 "Content-Disposition: inline; filename=文件名.mp3"// filename表示文件的默认名称,因为网络传输只支持URL编码的相关支付,因此需要将文件名URL编码后进行传输,前端收到后需要反编码才能获取到真正的名称
response.addHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(file.getName()+".csv","UTF-8"));
改成GBK
// 设置response的Header
response.setCharacterEncoding("GBK");//Content-Disposition的作用:告知浏览器以何种方式显示响应返回的文件,用浏览器打开还是以附件的形式下载到本地保存//attachment表示以附件方式下载 inline表示在线打开 "Content-Disposition: inline; filename=文件名.mp3"// filename表示文件的默认名称,因为网络传输只支持URL编码的相关支付,因此需要将文件名URL编码后进行传输,前端收到后需要反编码才能获取到真正的名称
response.addHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(file.getName()+".csv","GBK"));
版权归原作者 Risekr 所有, 如有侵权,请联系我们删除。