JAVA文件下载时乱码有两种情况:
1,下载时中文文件名乱码
2,下载时因为路径中包含中文文件名乱码,提示找不到文件
解决方法见下面部分代码
response.setContentType(“多部分/格式”); userAgent字符串=request.getHeader(“用户代理”); 字符串oraFileName=meetingFile.getFileName (); 字符串formFileName=oraFileName;//针对IE或者以IE为内核的浏览器: 如果(userAgent.contains (MSIE) | | userAgent.contains(“三叉戟”)){ formFileName=java.net.URLEncoder.encode (formFileName“utf - 8”); 其他}{//非IE浏览器的处理: formFileName=新的字符串(formFileName.getBytes (“utf - 8”)、“iso - 8859 - 1”); } response.setHeader(“附加”, String.format(“附件;文件名=\ " % s \ ", formFileName)); response.setContentType(“应用程序/vnd.ms-excel; charset=utf - 8”); response.setCharacterEncoding(“utf - 8”); ServletOutputStream;//通过文件路径获得文件对象 文件文件=零; 如果(meetingFile !=null) { 文件=新文件(路径+“上传/? oraFileName); } >之前(1)如果第一种乱码类型,下载页面遇到以下的中文乱码问题
用以下代码解决
(2)如果下载遇到第二种乱码问题,如图:
用以下代码解决:即首先确保tomcat, eclipse等为utf - 8编码
然后JAVA中这样与第一种对文件名编码分开,使它们分别编码,互不影响。
注意:以前目前测试可解决火狐与IE等浏览器下载时的编码问题,而针对WIN10自带的浏览器不时仍会出现乱码现象,谁要是有好的能兼容所有浏览器的方法希望能与本人分享,感激不尽。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
详解关于java文件下载文件名乱码问题解决方案