关于java文件下载文件名乱码问题解决方案
JAVA文件下载时乱码有两种情况:
1,下载时中文文件名乱码
2,下载时因为路径中包含中文文件名乱码,提示找不到文件
解决方法见下面部分代码
- response.setContentType("multipart/form-data");
- String userAgent = request.getHeader("User-Agent");
- String oraFileName = meetingFile.getFileName();
- String formFileName=oraFileName;
- // 针对IE或者以IE为内核的浏览器:
- if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {
- formFileName = java.net.URLEncoder.encode(formFileName, "UTF-8");
- } else {
- // 非IE浏览器的处理:
- formFileName = new String(formFileName.getBytes("UTF-8"), "ISO-8859-1");
- }
- response.setHeader("Content-disposition",
- String.format("attachment; filename=\"%s\"", formFileName));
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setCharacterEncoding("UTF-8");
- ServletOutputStream out;
- // 通过文件路径获得File对象
- File file = null;
- if (meetingFile != null) {
- file = new File(path + "upload/"+oraFileName);
- }
(1)如果第一种乱码类型,下载页面遇到以下的中文乱码问题
用以下代码解决
(2)如果下载遇到第二种乱码问题,如图:
用以下代码解决:即首先确保tomcat ,eclipse等为utf-8编码
然后JAVA中这样与第一种对文件名编码分开,使它们分别编码,互不影响。
注意:以前目前测试可解决火狐与IE等浏览器下载时的编码问题,而针对WIN10自带的浏览器不时仍会出现乱码现象,谁要是有好的能兼容所有浏览器的方法希望能与本人分享,感激不尽。
关于java文件下载文件名乱码问题解决方案的更多相关文章
- java 菜单 中文 乱码问题解决方案(使用idea/eclipse) swing MenuItem乱码
java swing MenuItem乱码 2016年12月30日 13:32:08751人阅读 评论(0) 收藏 举报 用java开发一个带有托盘图标的程序, 其它模块的中文显示都是正常的,比如 ...
- Java中FTPClient上传中文目录、中文文件名乱码问题解决方法【好用】
转: Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录 ...
- java导出文件IE/Google文件名乱码兼容
导出文件名乱码解决方案: String agent = request.getHeader("User-Agent"); boolean isMSIE = (agent != ...
- linux系统挂载U盘,中文文件名乱码解决方案
本人(壮壮熊)所用系统:ubuntu 12.4 今天在使用mount指令挂在硬盘时,出现令人头疼的中文文件名乱码. 问题: 使用mount /dev/sdb1 /media指令挂在第二颗硬盘的第一个分 ...
- java 乱码问题解决方案
java 乱码问题解决方案 一.tomcat: <Connector port="8080" maxThreads="150&qu ...
- Java 使用IE浏览器下载文件,文件名乱码问题
使用Servlet实现文件下载功能时,使用IE下载出现文件名乱码; 网上常见的解决办法是通过"user-agen"来判断浏览器: if (req.getHeader("u ...
- Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)
Java ZIP压缩和解压缩文件(解决中文文件名乱码问题) 学习了:http://www.tuicool.com/articles/V7BBvy 引用原文: JDK中自带的ZipOutputStrea ...
- 【java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题
response.setContentType("text/html; charset=UTF-8"); Boolean isMultipart = ServletFileUpl ...
- IDEA使用Tomcat时控制台乱码的解决方案>从零开始学JAVA系列
IDEA使用Tomcat时控制台乱码的解决方案 解决方案1,修改启动时虚拟机参数 解决方案2,修改idea的设置 解决方案3,修改idea配置文件 在最后添加一行 '-Dfile.encoding=U ...
随机推荐
- LVS (Linux Virtual Server) 负载均衡
[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服 ...
- 数据结构与算法(Python)
一.数据结构与算法概述 数据结构与算法的定义 我们把现实中大量而且非常复杂的问题以特定的数据类型(个体)和特定的存储结构(个体的关系)保存到相应的主存储器(内存)中,以及在此基础上为实现某个功能而执行 ...
- 【XSY1545】直径 虚树 DP
题目大意 给你一棵\(n\)个点的树,另外还有\(m\)棵树,第\(i\)棵树与原树的以\(r_i\)为根的子树形态相同.这\(m\)棵树之间也有连边,组成一颗大树.求这棵大树的直径长度. \(n ...
- LOJ# 572. 「LibreOJ Round #11」Misaka Network 与求和(min25筛,杜教筛,莫比乌斯反演)
题意 求 \[ \sum_{i = 1}^{n} \sum_{i = 1}^{n} f(\gcd(i, j))^k \pmod {2^{32}} \] 其中 \(f(x)\) 为 \(x\) 的次大质 ...
- 构建DHCP服务
--------------------DHCP 配置-------------------# yum install dhcp -y# vim /etc/dhcp/dhcpd.conf# cp /u ...
- [ZJOI2005]九数码游戏(BFS+hash)
Solution 这题的话直接上BFS就可以了,因为要输出方案,所以我们要开一个pre数组记录前驱,最后输出就可以了. 对于状态的记录,一般都用哈希来存,但因为这道题比较特殊,它是一个排列,所以我们可 ...
- 随机总数字里面选取随机数字进行随机排序案例(JAVA实现)
随机总数字里面选取随机数字进行随机排序案例,案例如下: 代码code: package com.sec; import java.util.Arrays; import java.util.Scann ...
- POJ--1056 IMMEDIATE DECODABILITY && POJ--3630 Phone List(字典树)
题目链接 题目大意 看输入的每个字符串中是否有一个字符串是另一个字符串的前缀 #include<iostream> #include<cstring> #include< ...
- java Properties
txt文件操作 // txt文件操作 Properties prop = new Properties(); String s = "Height=200"; String s2 ...
- agc032
T1 题意:你要进行n次操作,第i次选择一个数k∈[1,i],并插入到当前序列的第k个位置.给定目标序列,输出操作序列.100,2s. 解:冷静分析一波,我们可以从后往前确定操作序列.这样每次确定一个 ...