详解关于java文件下载文件名乱码问题解决方案
程序员文章站
2022-05-30 13:09:56
java文件下载时乱码有两种情况:
1,下载时中文文件名乱码
2,下载时因为路径中包含中文文件名乱码,提示找不到文件
解决方法见下面部分代码
response.setc...
java文件下载时乱码有两种情况:
1,下载时中文文件名乱码
2,下载时因为路径中包含中文文件名乱码,提示找不到文件
解决方法见下面部分代码
response.setcontenttype("multipart/form-data"); string useragent = request.getheader("user-agent"); string orafilename = meetingfile.getfilename(); string formfilename=orafilename; // 针对ie或者以ie为内核的浏览器: if (useragent.contains("msie") || useragent.contains("trident")) { formfilename = java.net.urlencoder.encode(formfilename, "utf-8"); } else { // 非ie浏览器的处理: formfilename = new string(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"); servletoutputstream out; // 通过文件路径获得file对象 file file = null; if (meetingfile != null) { file = new file(path + "upload/"+orafilename); }
(1)如果第一种乱码类型,下载页面遇到以下的中文乱码问题
用以下代码解决
(2)如果下载遇到第二种乱码问题,如图:
用以下代码解决:即首先确保tomcat ,eclipse等为utf-8编码
然后java中这样与第一种对文件名编码分开,使它们分别编码,互不影响。
注意:以前目前测试可解决火狐与ie等浏览器下载时的编码问题,而针对win10自带的浏览器不时仍会出现乱码现象,谁要是有好的能兼容所有浏览器的方法希望能与本人分享,感激不尽。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。