关于java文件下载文件名乱码问题解决方案
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自带的浏览器不时仍会出现乱码现象,谁要是有好的能兼容所有浏览器的方法希望能与本人分享,感激不尽。
关于java文件下载文件名乱码问题解决方案的更多相关文章
- java 菜单 中文 乱码问题解决方案(使用idea/eclipse) swing MenuItem乱码
java swing MenuItem乱码 2016年12月30日 13:32:08751人阅读 评论(0) 收藏 举报 用java开发一个带有托盘图标的程序, 其它模块的中文显示都是正常的,比如 ...
- Java中FTPClient上传中文目录、中文文件名乱码问题解决方法【好用】
转: Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录 ...
- java导出文件IE/Google文件名乱码兼容
导出文件名乱码解决方案: String agent = request.getHeader("User-Agent"); boolean isMSIE = (agent != ...
- linux系统挂载U盘,中文文件名乱码解决方案
本人(壮壮熊)所用系统:ubuntu 12.4 今天在使用mount指令挂在硬盘时,出现令人头疼的中文文件名乱码. 问题: 使用mount /dev/sdb1 /media指令挂在第二颗硬盘的第一个分 ...
- java 乱码问题解决方案
java 乱码问题解决方案 一.tomcat: <Connector port="8080" maxThreads="150&qu ...
- Java 使用IE浏览器下载文件,文件名乱码问题
使用Servlet实现文件下载功能时,使用IE下载出现文件名乱码; 网上常见的解决办法是通过"user-agen"来判断浏览器: if (req.getHeader("u ...
- Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)
Java ZIP压缩和解压缩文件(解决中文文件名乱码问题) 学习了:http://www.tuicool.com/articles/V7BBvy 引用原文: JDK中自带的ZipOutputStrea ...
- 【java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题
response.setContentType("text/html; charset=UTF-8"); Boolean isMultipart = ServletFileUpl ...
- IDEA使用Tomcat时控制台乱码的解决方案>从零开始学JAVA系列
IDEA使用Tomcat时控制台乱码的解决方案 解决方案1,修改启动时虚拟机参数 解决方案2,修改idea的设置 解决方案3,修改idea配置文件 在最后添加一行 '-Dfile.encoding=U ...
随机推荐
- iOS应用的性能调试
1.Static Analysis 使用之前先清理一下数据:product-->Clean 可能遇到的问题: a.发现工程中有多个“User-facing text should use loc ...
- chrome实用快捷键速记
标签页和窗口快捷键 操作 快捷键 打开新窗口 Ctrl + n 无痕模式下打开新窗口 Ctrl + Shift + n 打开新的标签页,并跳转到该标签页 Ctrl + t 重新打开最后关闭的标签页,并 ...
- eolinker——分享项目只需两步
登陆后打开项目概况 然后进入到分享项目界面,可根据自己的需求进行设置
- PHP——base64的图片的另类上传方法
前言 这只是个暂行的办法,回头研究好七牛云的base64上传或者vue的文件上传后还是要进行更改的 想法是这样的,既然前端只能穿base64的那就传base64的然后转为文件上传到七牛云后再删除 本地 ...
- 第二十一天,pickle json xml shelve configparser模块
今日内容 1.pcikle 专用于python语言的序列化 2.json 是一种跨平台的数据格式 也属于序列化的一种方式 3.xml 可拓展标记语言 一种编写文档的语法 也支持跨平台 比较json而言 ...
- Codeforces986C AND Graph 【位运算】【dfs】
题目大意: 一张$ m $个编号互异点图,最大不超过$ 2^n $,若两个编号位与为0则连边,问连通块数量. 题目分析: 考虑怎样的两个点会连边.这种说法对于A和B两个点来说,就相当于B在A的0的子集 ...
- King of Destruction HDU - 3002 && HDU - 3691(全局最小割)
求无向图的最小割 有没有源点都一样,不影响 #include <iostream> #include <cstdio> #include <sstream> #in ...
- poi的cellstyle陷阱,样式覆盖
问题 cell.getCellStyle().setFont(font); 这句话本来只是想设置这一个单元格cell的字体样式,但是实际上却影响了很多个单元格的样式. 问题出在了,Excel模板中这些 ...
- 【转】Qt之JSON保存与读取
简述 许多游戏提供保存功能,使得玩家在游戏中的进度可以被保存,并在以后再玩的时候进行加载.保存游戏的过程通常涉及将每个游戏对象的成员变量序列化为文件.要实现这个功能,可以采取许多格式,其中之一就是 J ...
- nfs的配置文件/etc/exports
/etc/exports 文件格式 <输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)] a. 输出目录:输出目录是指NFS系统中 ...