java文件下载和导出文件名乱码浏览器兼容性问题
实例:
String poorName= dataMap.get("NAME").toString();
String villageName = dataMap.get("ADDRESS").toString();
String filename=villageName+"-"+poorName+".doc";
response.setContentType("application/doc");
final String userAgent = request.getHeader("USER-AGENT");
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
filename = URLEncoder.encode(filename,"UTF-8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
filename = new String(filename.getBytes(), "ISO8859-1");
}else{
filename = URLEncoder.encode(filename,"UTF-8");//其他浏览器
}
response.addHeader("Content-Disposition", "attachment;filename="
+filename);/这里设置一下让浏览器弹出下载提示框,而不是直接在浏览器中打开
Writer out = response.getWriter();
也可以直接把方法提取出来供以后直接使用:
setFileDownloadHeader函数主要是根据当前用户的浏览器不同,对文件的名字进行不同的编码设置,从而解决不同浏览器下文件名中文乱码问题
public static void setFileDownloadHeader(HttpServletRequest request, HttpServletResponse response, String fileName) {
final String userAgent = request.getHeader("USER-AGENT");
try {
String finalFileName = null;
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
finalFileName = URLEncoder.encode(fileName,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
finalFileName = new String(fileName.getBytes(), "ISO8859-1");
}else{
finalFileName = URLEncoder.encode(fileName,"UTF8");//其他浏览器
}
response.setHeader("Content-Disposition", "attachment; filename=\"" + finalFileName + "\"");//这里设置一下让浏览器弹出下载提示框,而不是直接在浏览器中打开
} catch (UnsupportedEncodingException e) {
}
}
转载于:https://www.cnblogs.com/wjwen/p/5403527.html
java文件下载和导出文件名乱码浏览器兼容性问题相关推荐
- java 下载文件的文件名乱码_JAVA 文件下载时的文件名乱码解决
JAVA 文件下载时的文件名乱码解决 if(null != agent && -1 != agent.indexOf("MSIE")){ filename = UR ...
- PHP导出文件名乱码解决
问题场景: 统计数据需要增加一个到处excel功能, 于是使用composer安装了phpspreadsheet组件,进行数据处理并导出.遇到ASCII命名的文件名时, 都是导出一切正常, 但是遇到中 ...
- 文件下载时,文件名乱码问题
文件下载时,解决不同浏览器文件名乱码问题 public static String encodeFileName(HttpServletRequest request, String pFileNam ...
- 报表服务器导出报表文件名乱码,excel 导出文件名乱码
因为经常要用到导出功能,之前因为文件名乱码,所以都用英文或是拼音缩写来代替,今天特意要接觉下这个问题.顺便记录下.望对小白有用. /** * 导出结算详情列表 * @return */ public ...
- Java文件路径及文件名乱码_javaweb文件下载及文件名中文乱码处理
版权声明:yanghaha的原创博客 https://blog.csdn.net/qq_44758435/article/details/90636619 文件下载 需要先导入两个jar包 commo ...
- Java Web——文件下载时中文文件名乱码问题解决方案
问题描述 问题分析 浏览器匹配与编码问题. 解决方案 request.setCharacterEncoding("UTF-8");//response.setContentType ...
- 文件下载(下载文件名乱码解决方法)
1. 下载就是向客户端响应字节数据! 原来我们响应的都是html的字符数据! 把一个文件变成字节数组,使用response.getOutputStream()来各应给浏览器!!! 2. 下载的要求 * ...
- csv导出文件名乱码解决
public void exportCsv(ExamineDTO examineDTO, HttpServletRequest request, HttpServletResponse respons ...
- mysql导出文件名乱码_Mysql导出导入乱码问题解决
MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级.降级,特别是 ...
- Java文件下载中文名不显示乱码
2019独角兽企业重金招聘Python工程师标准>>> 问题 Java开发中,文件上传下载是很常用的功能.实际开发中遇到了中文名不显示的问题,一开始以为是后台代码的原因,网上查了一些 ...
最新文章
- 算法--------二叉树的前序遍历
- 聚类图像像素 Clustering Pixels Using K-Means
- python3 字符串前字母(无前缀,前缀u,前缀b,前缀r)含义
- matlab rebit,BIM的算法最新消息!MATLAB被禁也有BIM开源工具用!
- hive中存Array类型的数据的案例,将字符串的数组格式转成数组的字符串,自定义函数方式处理‘[12,23,23,34]‘字符串格式的数据为array<int>格式的数据。
- 怎么样武直不打_打HPV疫苗期间意外怀孕?怎么办?
- python柱状图挨在一起_echarts多个柱状图展示问题(bar都挤到一起了)
- 只需一行代码,完美呈现Markdown格式,写作展示两不误
- 数组的声明、创建、初始化
- 虹软科技Java人脸识别_java人脸识别 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对...
- 电熨斗IEC测试流程及周期
- C语言 摄氏度与华氏度转换
- ResourceManager HA 配置
- Symbian开发——Symbian开发知识(转)
- STM32F103_study54_The punctual atoms(STM32 There have always been questions about learning STM32)
- xftp、xshell安装出现1603错误解决,亲测有用
- iOS: pch 如何添加项目中
- 这次一定 | “学废” 正则表达式
- 红外真空离心浓缩仪ZLNS-II
- 利用scp 在linux之间传输文件
热门文章
- 项目铺垫系列导航目录
- ProcessPoolExecutor
- 【NLPCC 2021】 First Call For Papers
- PyTorch学习—4.计算图与动态图机制以及torch.autograd(自动求导系统)
- 深度学习2.0-35.ResNet-18实战
- 深度学习2.0-34.ResNet 与 DenseNet
- 辨别虚假流量的十二种方法
- 《商务新星.NET 4.0》发布说明
- 项目经理要提升需求分析的能力
- 49多项式04——标准分解式、不可约多项式、因式分解及唯一性定理、重因式