浏览器下载文件名与源不一致问题

最近项目里碰到下载文件名与原来不一致的问题。
比如说
原来是空格的,下载后变成了加号;原来是加号的,下载后变成空格。

问题代码

void defaultDownload(String id,String wjlxType,HttpServletResponse response){/***to do.... **/String fileName = attach.getFileOriName();try {//这里URLEncoder.encode(fileName, "utf-8")编码有问题response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "utf-8"));} catch (UnsupportedEncodingException e) {log.error("URLEncoder.encode(fileName, \"utf-8\")出错...",e);ExceptionUtil.throwRuntimeException("不支持的编码格式!");return;}response.setContentType("application/octet-stream; charset=utf-8");response.setHeader("content-length", attach.getFileSize().toString());/***to do.... **/}

检查发现: java.net.URLEncoder url编码值,某些特殊字符 编码值 对应不了 目前主流浏览器 解析值

如空格:java.net.URLEncoder编码值为【%20】;实际浏览器解析空格对应的编码值应为【+】
如加号:java.net.URLEncoder不编码,值为【+】;实际浏览器解析空格对应的编码值应为【%2B】

解决:调整URL编码的使用工具为 com.sun.jndi.toolkit.url.UrlUtil

 UrlUtil.encode(fileName, "utf-8")

浏览器下载文件名与源不一致问题相关推荐

  1. 火狐浏览器下载文件名乱码

    ##火狐浏览器下载文件名乱码 response.setHeader("Content-Disposition","attachment;filename*=utf-8'z ...

  2. IE浏览器下载文件名乱码

    解决IE浏览器下载文件名乱码额问题 //下载的文件名为fileNameString fileName = "登录登出日志统计" + DateUtils.yyyyMMddHHmmss ...

  3. IE浏览器下载文件名出现中文乱码问题解决

    最近做的一个项目,出了个小问题,使用google浏览器下载文件正常,结果使用IE11浏览器下载文件时,发现就下载失败. 问题原因:当请求的url中含有中文时,google浏览器会自动进行URL编码,请 ...

  4. 论如何让一个人心态爆炸-尝试改变奥维地图浏览器下载的地图源

    小学期实习需要做一个土地利用调查,在根据影像绘制好地块的面之后,将其转成kmz导入到一个奥维互动地图的app(因为据说野外用这个手机上编辑属性方便一些?),发现图斑有偏移... 有可能是给我们的影像没 ...

  5. 浏览器下载中文乱码问题目

    浏览器下载中文乱码问题目 BASE64编码方式 base64的编解码方式 public static void main(String[] args) throws Exception {String ...

  6. Android之解决PC端上传http表单格式文件手机解析文件名乱码问题和PC浏览器下载文件的文件名显示乱码问题

    1 问题 问题1. 手机写socket作为服务器,PC浏览器上传http表单格式文件,然后手机端解析携带中文的文件名我解析是乱码. 问题2. 手机写了socket作为服务器,PC浏览器下载文件,但是浏 ...

  7. ie浏览器打开aspx文件乱码_ie浏览器下载文件时文件名乱码

    做一个文件下载功能时,用ie浏览器下载时文件名乱码,火狐和谷歌正常,修改后ie显示正常,修改方法如下: @RequestMapping(value = "fileDownload" ...

  8. 解决浏览器下载文件时中文文件名乱码的问题

    解决浏览器下载文件时中文文件名乱码的问题 很多时候我们需要在后台为前端提供文件下载的功能,但是当文件名中有中文时我们不能直接将文件名返回,需要对中文的文件名进行处理后再返回. 一.文件下载contro ...

  9. php浏览器下载文件 文件名 空格 中文 处理

    php做下载文件的实现代码及文件名中乱码... 最近有人问我做下载文件的方法,对于php方法如下: <?php header("Content-Type: application/fo ...

最新文章

  1. 藏经阁计划发布一年,阿里知识引擎有哪些技术突破?
  2. SqlServer int型转varchar型 出现*号
  3. php方法数组注释,php中的注释、变量、数组、常量、函数应用介绍
  4. js轮询导致服务器瘫痪_演进:Tengine 从 Web 代理服务器 到 分布式推送服务器
  5. ai画面怎么调大小_怎么使用pr(adobe premiere)裁剪视频画面的大小
  6. java.lang.StackTraceElement类
  7. 感觉要火!妹子实地采访网易猪厂程序员七夕怎么过
  8. vue与原生app的对接交互的方法(混合开发)
  9. 塔设备设计手册_石油化工设备设计选用手册 塔器
  10. 【To Understand】程序员面试金典——番外篇之洪水
  11. java中的并发是什么意思_java中的并发是什么
  12. 抖音文案、声音、设计、视频、图片素材网站
  13. 密码学——培根密码和栅栏密码
  14. SMAA算法详解 - SMAANeighborhoodBlendingVS
  15. Wifi源码学习(Android5.1)之wifi开关
  16. 启xin宝app的token算法破解——抓包分析篇(一)
  17. MATLAB-样条插值运算
  18. python练习-给数组去重后元素的加序号
  19. VS2017 打包exe,msi文件
  20. Greenplum集群Master与Standby相互切换

热门文章

  1. RC4算法C语言实现
  2. NodeJS框架学习-Egg框架
  3. buffalo-命令
  4. 华为HCIE-RS(数通)论述题(二)
  5. 解决qemu-system-aarch64 Guest has not initialized the display (yet)
  6. 软件测试-黑盒测试2
  7. Linux网络编程3——多进/线程并发服务器
  8. QSettings用法总结
  9. 小米折叠手机售价、发布时间曝光
  10. VScode调试php文件(详细且简单易操作)