所下载文件包含中文字符时需要进行编码:

第一种方法:

String filename = new String(file.getName().getBytes(),"ISO-8859-1");response.getHttpResponse().setHeader("Content-Disposition", "attachment;filename=" + filename);

第二种方法:

 // 支持中文名称文件,需要对header进行单独设置,不然下载的文件名会出现乱码或者无法显示的情况String filename = URLEncoder.encode(fileName,"UTF-8");// 设置响应头,控制浏览器下载该文件response.setHeader("Content-Disposition", "attachment;filename=" + filename );//通过文件路径获得File对象

文件下载代码:

public void downLoad(String fileName, String filePath,HttpServletResponse response) throws IOException {response.reset();  response.setContentType("application/force-download");// 支持中文名称文件,需要对header进行单独设置,不然下载的文件名会出现乱码或者无法显示的情况// String downloadFileName = new String(fileName .getBytes(), "ISO-8859-1");String downloadFileName = URLEncoder.encode(fileName,"UTF-8");// 设置响应头,控制浏览器下载该文件response.setHeader("Content-Disposition", "attachment;filename=" + downloadFileName);//通过文件路径获得File对象File file = new File(filePath + fileName);FileInputStream inputStream = null;OutputStream out = null;try {   inputStream = new FileInputStream(file);   //通过response获取ServletOutputStream对象(out)   out = response.getOutputStream();   int length = 0;   byte[] buffer = new byte[1024];   while ((length = inputStream.read(buffer)) != -1){   //4.写到输出流(out)中   out.write(buffer,0,length);   }                               } catch (IOException e) {   e.printStackTrace();  log.info("file is error" + e.getMessage());} finally {inputStream.close();   out.flush(); out.close();   }   }

java文件下载时如何解决中文名称不显示的问题相关推荐

  1. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别

    java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...

  2. Python使用matplotlib或者Seaborn箱图(boxplot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案。

    Python使用matplotlib或者Seaborn箱图(boxplot)可视化时汉语(中文)标签显示成了框框□□.什么情况.我们有解决方案. #仿真数据 import pandas as pd i ...

  3. 中文名称的文件传不到ftp服务器,FTP上传文件时文件的中文名称变为#号,解决方法...

    由于R&D中心需要把图纸上传到FTP服务器上,所以做了一个FTP方式的上传本地文件到FTP服务器的程序,程序做完但是出现了一些问题,贴出来大家讨论,以便给予本人解决.现谢谢各位的参与和恢复. ...

  4. Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  5. java实现对数组按中文名称排序

    对数组按中文名称排序 Arrays类中的sort()方法缺失一般是按照数组中数值的大小或字母顺序进行排序的,但这种处理方式对中文无效.为此使用了类Arrays中另一种形式的sort()方法:sort( ...

  6. Python使用matplotlib绘制分组对比柱状图(bar plot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案

    Python使用matplotlib绘制分组对比柱状图可视化时(bar plot)汉语(中文)标签显示成了框框□□.什么情况.我们有解决方案 目录

  7. java文件下载时文件类型_Java基础之文件下载实现自定义名称和格式类型-java下载文件...

    response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,可以设置文件格式.参考数据如下: re ...

  8. Java笔记-JNI中Java与C语言解决中文乱码问题

    目录 基本概念 演示过程 基本概念 这里我把他总结成4个步骤: 1. 找类,Java的String: 2. 找函数String类的方法,成员函数: 3. 设置要转换的字符和编码: 4. 程序生成编码后 ...

  9. JAVA本地文本读取---解决中文乱码

    import java.io.*;public class ReadFile {public static void main(String[] args) {try {File file = new ...

最新文章

  1. OpenCV源代码编译
  2. hdu6165 缩点,dfs
  3. 你们都在用IntelliJ IDEA吗?或许你们需要看一下这篇博文
  4. countDownLatch 与 CyclicBarrier 区别
  5. vtkImageData基本操作
  6. 顺序程序设计02 - 零基础入门学习C语言08
  7. ubuntu中查找文件后高亮_vim查找替换及取消高亮
  8. The dialect was not set. Set the property hibernate.dialect
  9. java 构造器(constructor)是否可被重写(override)?
  10. 如何在sublime编辑器中,执行命令行脚本
  11. Web开发之旅--使用Flask 实现REST架构的API
  12. oracle的sql字符串转义,sql – 在Oracle数据库中搜索带转义的字符串
  13. 项目管理第七章项目成本管理
  14. 商业银行的组织结构-决策系统、执行系统和监督系统
  15. html5自助建站源码,疯狂原始人
  16. 算法学习笔记:涉及动态规划的简单例题
  17. java list 索引值_List中固定某个索引的值-简单替换位置
  18. 联系微信ID服务器失败,微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况...
  19. ccd坏点测试软件,如何测试CCD坏点(ZT)
  20. 51nod 1243 排船的问题

热门文章

  1. 惠普笔记本安装ubuntu18.04没有wifi适配器
  2. 数迹智能 VisionChina(上海)2020 展精彩回顾
  3. 高级前端如何更优雅的定义WebComponent
  4. c语言输入年月的流程图_怎么画C语言万年历的流程图?
  5. 微信小程序之调试模式
  6. 关于TCP连接四次握手(或者叫四次挥手)的详细总结
  7. 1个数据可视化的「百搭套路」,从此打开新思路
  8. Educoder——Java循环与分支语句编程练习
  9. j计算机相关知识了解农业常识,精准农业知识点提要
  10. 基于概率的循环地图 Unlit Shader