Java 解决IE浏览器下载文件,文件名出现乱码问题
/**
* 区分ie 和其他浏览器的下载文件乱码问题
* @param request
* @param fileName
* @return
*/
public String getFileName(HttpServletRequest req,String fileName){
String userAgent = req.getHeader("user-agent");
userAgent = userAgent ==null?"":userAgent.toLowerCase();
String name = fileName;
try {
//针对IE或者以IE为内核的浏览器:
if(userAgent.contains("msie") ||userAgent.contains("trident")){
name = URLEncoder.encode(name, "UTF-8");
}else{
name = new String(name.getBytes(), "iso-8859-1");
}
} catch (Exception e) {
throw new SysException(ERRORConstants.COMMON_SYSTEM_ERROR, e);
}
return name;
}
网上很多例子是用 msie 和like Gecko 来做区分,说ie11去除了msie;
亲自测试 谷歌浏览器也带like Gecko,ie11的 msie没有移除,并且带有trident标记
结论是 不用用like Gecko来做区分,最后
public void exportExcel(HttpServletRequest req,HttpServletResponse response) {
try{
response.setContentType("application/octet-stream");
String excelName = "文件名";
response.addHeader("Content-Disposition", "attachment;filename="+getFileName(req,excelName)+".xls");
OutputStream out = response.getOutputStream();
testService.export(out);
}catch(Exception e){
//
}
}
Java 解决IE浏览器下载文件,文件名出现乱码问题的更多相关文章
- [JAVA]解决不同浏览器下载附件的中文名乱码问题
附件下载时,遇到中文附件名的兼容性问题,firefox.chrome.ie三个派系不兼容,通过分析整理,总结出处理该问题的办法,记录如下: 1.文件名编码 服务器默认使用的是ISO8859-1,而我们 ...
- Java 使用IE浏览器下载文件,文件名乱码问题
使用Servlet实现文件下载功能时,使用IE下载出现文件名乱码; 网上常见的解决办法是通过"user-agen"来判断浏览器: if (req.getHeader("u ...
- Java使用IE浏览器下载文件,文件名乱码问题
String userAgent = request.getHeader("user-agent").toLowerCase(); if (userAgent.contains(& ...
- 火狐浏览器下载文件中文乱码,文件名中的空格变加号("+")的问题
解决一下问题: 1.火狐浏览器下载文件,中文变乱码 2.IE浏览器下载文件,丢失文件扩展名或强制扩展名为".txt" 3.浏览器下载文件,文件名中的空格变成加号("+&q ...
- IE浏览器下载文件中文文件名乱码问题解决
处理过程 根据IE的F12中的log提示,是因为http头信息中的编码替换了html文件中的编码.我最初的思路是设置Tomcat默认编码,但是我发现我已经在Server.xml中设置过,想到这里我想到 ...
- ie浏览器下载文件时文件名乱码
做一个文件下载功能时,用ie浏览器下载时文件名乱码,火狐和谷歌正常,修改后ie显示正常,修改方法如下: @RequestMapping(value = "fileDownload" ...
- IE浏览器下载文件保存时提示:“你没有权限在此位置中保存文件”解决办法
E浏览器下载文件保存时提示 解决办法: 1.Win + R,打开运行命令,输入gpedit.msc,如图所示 2.打开计算机本地组策略编辑器:选择计算机配置-windows设置-安全设置-本地策略-安 ...
- Microsoft Edge浏览器下载文件乱码修复方法(二)
之前有写过"Microsoft Edge浏览器下载文件乱码修复方法",发现很多情况下下载文件乱码问题还是存在,这里对之前内容做简单补充,希望可以帮到大家. 方法二: 默认如果提示下 ...
- asp.net 浏览器下载文件的四种方式
// 方法一:TransmitFile实现下载 protected void Button1_Click(object sender, EventArgs e) { Response.ContentT ...
随机推荐
- linux中的三种时间
mtime [修改时间] 文件/目录的修改时间 ctime [属性修改时间] 文件目录的属性的修改时间 atime [访问时间]文件/目录的访问时间 stat 123.txt File: `1 ...
- list倒序删除
public static void main(String[] args) { List<Integer> nums = new ArrayList<Integer>(); ...
- 切换本地凭据(Windows上登录的GitHub账号)
切换本地用户,可以向微软小娜搜索Windows凭据,这个步骤可以参考这篇博客 的说明.
- QT 简单的计算器例子
开发工具:vs2010.qt5.1 1使用vs新建工程,Base Class 选择QDialog
- Spring学习(五)事务管理
Spring 事务管理: 一.事务概念: 1.什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的 ...
- Java面向对象_继承——基本概念以及管理化妆品实例分析
一.继承的基本概念: 1.继承是面向对象三大特征之一 2.被继承的类成为父类(超类),继承父类的类成为子类(派生类) 3.继承是指一个对象直接使用另一个对象的属性和方法 4.通过继承可以实现代码重用 ...
- 解决Hadoop无法加载本地库的问题: Unable to load native-hadoop library for your platform
今天跑Hadoop程序时一直提示我无法加载本地库,然后就直接退出运行了,如下图所示. 原因是由于Apache提供的Hadoop本地库是32位的,而在64位的服务器上就会有问题,因此需要自己编译64位的 ...
- 原型设计工具 Axure RP 7.0下载地址及安装说明
Axure RP是产品经理必备的原型制作工具,因为很多同学是新手,在这里整理一下axure7.0的下载.安装和汉化流程,希望能够帮到大家. Axure RP是美国Axure Software Solu ...
- spring开发配置编码
在pom.xml中添加属性project.build.sourceEncoding就可以设置工程的编码 <properties> <!-- 文件拷贝时的编码 --> <p ...
- onclientclick与onclick的问题.
<script language="javascript" type="text/javascript"> document.getElementB ...