实例:

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文件下载和导出文件名乱码浏览器兼容性问题相关推荐

  1. java 下载文件的文件名乱码_JAVA 文件下载时的文件名乱码解决

    JAVA 文件下载时的文件名乱码解决 if(null != agent && -1 != agent.indexOf("MSIE")){ filename = UR ...

  2. PHP导出文件名乱码解决

    问题场景: 统计数据需要增加一个到处excel功能, 于是使用composer安装了phpspreadsheet组件,进行数据处理并导出.遇到ASCII命名的文件名时, 都是导出一切正常, 但是遇到中 ...

  3. 文件下载时,文件名乱码问题

    文件下载时,解决不同浏览器文件名乱码问题 public static String encodeFileName(HttpServletRequest request, String pFileNam ...

  4. 报表服务器导出报表文件名乱码,excel 导出文件名乱码

    因为经常要用到导出功能,之前因为文件名乱码,所以都用英文或是拼音缩写来代替,今天特意要接觉下这个问题.顺便记录下.望对小白有用. /** * 导出结算详情列表 * @return */ public ...

  5. Java文件路径及文件名乱码_javaweb文件下载及文件名中文乱码处理

    版权声明:yanghaha的原创博客 https://blog.csdn.net/qq_44758435/article/details/90636619 文件下载 需要先导入两个jar包 commo ...

  6. Java Web——文件下载时中文文件名乱码问题解决方案

    问题描述 问题分析 浏览器匹配与编码问题. 解决方案 request.setCharacterEncoding("UTF-8");//response.setContentType ...

  7. 文件下载(下载文件名乱码解决方法)

    1. 下载就是向客户端响应字节数据! 原来我们响应的都是html的字符数据! 把一个文件变成字节数组,使用response.getOutputStream()来各应给浏览器!!! 2. 下载的要求 * ...

  8. csv导出文件名乱码解决

    public void exportCsv(ExamineDTO examineDTO, HttpServletRequest request, HttpServletResponse respons ...

  9. mysql导出文件名乱码_Mysql导出导入乱码问题解决

    MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级.降级,特别是 ...

  10. Java文件下载中文名不显示乱码

    2019独角兽企业重金招聘Python工程师标准>>> 问题 Java开发中,文件上传下载是很常用的功能.实际开发中遇到了中文名不显示的问题,一开始以为是后台代码的原因,网上查了一些 ...

最新文章

  1. 算法--------二叉树的前序遍历
  2. 聚类图像像素 Clustering Pixels Using K-Means
  3. python3 字符串前字母(无前缀,前缀u,前缀b,前缀r)含义
  4. matlab rebit,BIM的算法最新消息!MATLAB被禁也有BIM开源工具用!
  5. hive中存Array类型的数据的案例,将字符串的数组格式转成数组的字符串,自定义函数方式处理‘[12,23,23,34]‘字符串格式的数据为array<int>格式的数据。
  6. 怎么样武直不打_打HPV疫苗期间意外怀孕?怎么办?
  7. python柱状图挨在一起_echarts多个柱状图展示问题(bar都挤到一起了)
  8. 只需一行代码,完美呈现Markdown格式,写作展示两不误
  9. 数组的声明、创建、初始化
  10. 虹软科技Java人脸识别_java人脸识别 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对...
  11. 电熨斗IEC测试流程及周期
  12. C语言 摄氏度与华氏度转换
  13. ResourceManager HA 配置
  14. Symbian开发——Symbian开发知识(转)
  15. STM32F103_study54_The punctual atoms(STM32 There have always been questions about learning STM32)
  16. xftp、xshell安装出现1603错误解决,亲测有用
  17. iOS: pch 如何添加项目中
  18. 这次一定 | “学废” 正则表达式
  19. 红外真空离心浓缩仪ZLNS-II
  20. 利用scp 在linux之间传输文件

热门文章

  1. 项目铺垫系列导航目录
  2. ProcessPoolExecutor
  3. 【NLPCC 2021】 First Call For Papers
  4. PyTorch学习—4.计算图与动态图机制以及torch.autograd(自动求导系统)
  5. 深度学习2.0-35.ResNet-18实战
  6. 深度学习2.0-34.ResNet 与 DenseNet
  7. 辨别虚假流量的十二种方法
  8. 《商务新星.NET 4.0》发布说明
  9. 项目经理要提升需求分析的能力
  10. 49多项式04——标准分解式、不可约多项式、因式分解及唯一性定理、重因式