java文件下载时如何解决中文名称不显示的问题
所下载文件包含中文字符时需要进行编码:
第一种方法:
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文件下载时如何解决中文名称不显示的问题相关推荐
- java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别
java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...
- Python使用matplotlib或者Seaborn箱图(boxplot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案。
Python使用matplotlib或者Seaborn箱图(boxplot)可视化时汉语(中文)标签显示成了框框□□.什么情况.我们有解决方案. #仿真数据 import pandas as pd i ...
- 中文名称的文件传不到ftp服务器,FTP上传文件时文件的中文名称变为#号,解决方法...
由于R&D中心需要把图纸上传到FTP服务器上,所以做了一个FTP方式的上传本地文件到FTP服务器的程序,程序做完但是出现了一些问题,贴出来大家讨论,以便给予本人解决.现谢谢各位的参与和恢复. ...
- Java Web项目中解决中文乱码方法总结
一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...
- java实现对数组按中文名称排序
对数组按中文名称排序 Arrays类中的sort()方法缺失一般是按照数组中数值的大小或字母顺序进行排序的,但这种处理方式对中文无效.为此使用了类Arrays中另一种形式的sort()方法:sort( ...
- Python使用matplotlib绘制分组对比柱状图(bar plot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案
Python使用matplotlib绘制分组对比柱状图可视化时(bar plot)汉语(中文)标签显示成了框框□□.什么情况.我们有解决方案 目录
- java文件下载时文件类型_Java基础之文件下载实现自定义名称和格式类型-java下载文件...
response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,可以设置文件格式.参考数据如下: re ...
- Java笔记-JNI中Java与C语言解决中文乱码问题
目录 基本概念 演示过程 基本概念 这里我把他总结成4个步骤: 1. 找类,Java的String: 2. 找函数String类的方法,成员函数: 3. 设置要转换的字符和编码: 4. 程序生成编码后 ...
- JAVA本地文本读取---解决中文乱码
import java.io.*;public class ReadFile {public static void main(String[] args) {try {File file = new ...
最新文章
- OpenCV源代码编译
- hdu6165 缩点,dfs
- 你们都在用IntelliJ IDEA吗?或许你们需要看一下这篇博文
- countDownLatch 与 CyclicBarrier 区别
- vtkImageData基本操作
- 顺序程序设计02 - 零基础入门学习C语言08
- ubuntu中查找文件后高亮_vim查找替换及取消高亮
- The dialect was not set. Set the property hibernate.dialect
- java 构造器(constructor)是否可被重写(override)?
- 如何在sublime编辑器中,执行命令行脚本
- Web开发之旅--使用Flask 实现REST架构的API
- oracle的sql字符串转义,sql – 在Oracle数据库中搜索带转义的字符串
- 项目管理第七章项目成本管理
- 商业银行的组织结构-决策系统、执行系统和监督系统
- html5自助建站源码,疯狂原始人
- 算法学习笔记:涉及动态规划的简单例题
- java list 索引值_List中固定某个索引的值-简单替换位置
- 联系微信ID服务器失败,微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况...
- ccd坏点测试软件,如何测试CCD坏点(ZT)
- 51nod 1243 排船的问题