详解关于java文件下载文件名乱码问题解决方案
JAVA文件下载时乱码有两种情况:
1,下载时中文文件名乱码
2,下载时因为路径中包含中文文件名乱码,提示找不到文件
解决方法见下面部分代码
response.setContentType("multipart/form-data"); StringuserAgent=request.getHeader("User-Agent"); StringoraFileName=meetingFile.getFileName(); StringformFileName=oraFileName; //针对IE或者以IE为内核的浏览器: if(userAgent.contains("MSIE")||userAgent.contains("Trident")){ formFileName=java.net.URLEncoder.encode(formFileName,"UTF-8"); }else{ //非IE浏览器的处理: formFileName=newString(formFileName.getBytes("UTF-8"),"ISO-8859-1"); } response.setHeader("Content-disposition", String.format("attachment;filename=\"%s\"",formFileName)); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setCharacterEncoding("UTF-8"); ServletOutputStreamout; //通过文件路径获得File对象 Filefile=null; if(meetingFile!=null){ file=newFile(path+"upload/"+oraFileName); }
(1)如果第一种乱码类型,下载页面遇到以下的中文乱码问题
用以下代码解决
(2)如果下载遇到第二种乱码问题,如图:
用以下代码解决:即首先确保tomcat,eclipse等为utf-8编码
然后JAVA中这样与第一种对文件名编码分开,使它们分别编码,互不影响。
注意:以前目前测试可解决火狐与IE等浏览器下载时的编码问题,而针对WIN10自带的浏览器不时仍会出现乱码现象,谁要是有好的能兼容所有浏览器的方法希望能与本人分享,感激不尽。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。