java处理文件下载含特殊符号_java 文件下载名称包含特殊字符处理
经过我测试除了文件名称包含英文逗号谷歌会下载失败外,其它的都没问题了。这个找到解决方法了再补上,先记录一下
String userAgent = request.getHeader("user-agent").toLowerCase();
if (userAgent.contains("msie")) {// IE
try {
fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("%20", "\\+").replaceAll("%28", "\\(")
.replaceAll("%29", "\\)").replaceAll("%3B", ";").replaceAll("%40", "@").replaceAll("%23", "\\#")
.replaceAll("%26", "\\&").replaceAll("%2C", "\\,").replaceAll("%24", "\\$")
.replaceAll("%25", "\\%").replaceAll("%5E", "\\^").replaceAll("%3D", "\\=")
.replaceAll("%2B", "\\+");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
} else if (userAgent.contains("like gecko")) {// 谷歌
try {
fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("%20", "\\+").replaceAll("%28", "\\(")
.replaceAll("%29", "\\)").replaceAll("%3B", ";").replaceAll("%40", "@").replaceAll("%23", "\\#")
.replaceAll("%26", "\\&").replaceAll("%2C", "\\,").replaceAll("%24", "\\$")
.replaceAll("%25", "\\%").replaceAll("%5E", "\\^").replaceAll("%3D", "\\=")
.replaceAll("%2B", "\\+").replaceAll("%5B", "\\[").replaceAll("%5D", "\\]")
.replaceAll("%7B", "\\{").replaceAll("%7D", "\\}");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
} else if (userAgent.contains("firefox")) {// 火狐
try {
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1").replaceAll("%20", "\\+")
.replaceAll("%28", "\\(").replaceAll("%29", "\\)").replaceAll("%3B", ";").replaceAll("%40", "@")
.replaceAll("%23", "\\#").replaceAll("%26", "\\&").replaceAll("%2C", "\\,")
.replaceAll("%24", "\\$");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
}
java处理文件下载含特殊符号_java 文件下载名称包含特殊字符处理相关推荐
- java 下载文件的文件名乱码_JAVA 文件下载时的文件名乱码解决
JAVA 文件下载时的文件名乱码解决 if(null != agent && -1 != agent.indexOf("MSIE")){ filename = UR ...
- java识别不了欧元 符号_java – 使用unicode显示欧元符号并将字符更改为大写
如果问题只是关于欧元标志变得混乱 – 那就是程序 import java.io.*; public class Foo { public static void main (String args[] ...
- java 错误 找不到符号_Java错误:找不到符号,也找不到原因
错误: error: cannot find symbol 出现的内容不起作用: 如果我写:" InvoerVakhandler扩展了boven",则该错误消失了,但是随后我得到了 ...
- java中ch或者的符号_java 中文标点符号判断
背景 最近需要处理一些文本,发现想细化一些分类,以前的知识短板就暴露出来了. 这一篇主要是针对网上的资料收集整理. 偏于以后学习查阅. 中文标点符号判断 Java Character 实现Unicod ...
- java做一个人类类属性_java.编写一个包含姓名,身高属性的Person类,
展开全部 //这个是Person 类 public class Person { private final String name;//姓名 private int hight;//身高 publi ...
- java 判断特殊字符_java 判断是否包含特殊字符
判断字符串是否包含特殊字符,示例如下: public class ContentTest { public static void main(String[] args) { String str = ...
- Java 支付宝对账功能(查询+文件下载+解压+遍历文件+读文件)
Java 支付宝对账功能(查询+文件下载+解压+遍历文件+读文件) **需求** **流程** 1 .调用支付宝接口, 获取zip 下载地址 2.工具类代码 3.目录 4.开发环境 5.更新实际收益到 ...
- java 无符号转有符号_java有符号无符号的转换
数据处理中常常遇到基本数据类型的操作,java都是有符号的数据,而与下位机通信中常常遇到无符号的比如uint8, uint16,uint32等等 1.为了完成这个功能还专门采用ByteBuffer的方 ...
- java找不到符号_java找不到符号,请帮忙看一下,程序在附件中
--------------------Configuration: --------------------D:\我的资料库\Documents\Socket聊天室源程序\Socket聊天室源程序\ ...
最新文章
- python与excel的应用-python基础之类与对象的应用-操作excel
- 数据备份基础之备份类型
- mxnet基础到提高(27)-Dense
- quartz 表达式解析 详解
- qcow2 磁盘在线扩容方法
- 【Excel-2010】空值替换
- debian 8 和centos 配置java 环境变量的正确姿态
- centos7 设备 mariadb-10
- 新闻管理系统——系统管理员模块(一)
- python连接sap接口_python 连接SAP的方法
- 学生用计算机的按键名称,计算器各个键的功能
- mysql 三角函数_三角函数公式
- pdf转换成jpg python_Python Wand将PDF转换为JPG background
- 爬取中国所有银行官网网址信息
- 如何在Linux上的命令行中设置Google Chrome浏览器的代理设置?
- 将彩色图片分离为RGB三个通道的灰度图,并输出
- PHP中preg_match函数详解
- 如何写网络舆情数据分析报告的技巧及注意事项详解
- el-form表单添加自定义验证
- 大疆Onboard SDK 3.2玫瑰线例程浅析
热门文章
- 智方6000系标准销售管理系统 v4.57 绿色
- 如何高效工作的方式方法
- java的学习--第二章 java流程控制
- 干掉「卧槽」,就用她了!
- 作息时间表 (2005.3 ~ 2005.7)
- 算力和硬件的关系_硬件算力需求飙升,为什么软件生意越来越火?
- Ubuntu14.04 for ROS indigo的安装(电脑配置)
- 0pp0a1支持html吗,OPPOA1是什么处理器
- uint16,uint32是什么?
- 极客日报:张一鸣以594亿美元成中国互联网首富;苹果称华为商标抄袭AIRPODS被驳回;​Chrome 95发布