广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java下载文件,中文文件名乱码问题解决(文件名包含很多%)
  • 234
分享到

Java下载文件,中文文件名乱码问题解决(文件名包含很多%)

java前端 2023-09-02 09:09:24 234人浏览 独家记忆
摘要

一般情况下,大家都是这样: fileName = URLEncoder.encode(fileName, "UTF-8");response.reset();response.setHeader("Content-disposition",

一般情况下,大家都是这样:

fileName = URLEncoder.encode(fileName, "UTF-8");response.reset();response.setHeader("Content-disposition", "attachment;filename=" + fileName);response.setContentType("application/octet-stream; charset=UTF-8");IoUtil.copy(inputStream, response.getOutputStream());

其实乱码就是乱在;filename=" + fileName这里,对文件名的编码设定上。

使用URLEncoder.encode(filepath,"UTF-8")虽然可以解决在提示下载框中正确显示汉字文件名的问题,并且在选择保存,然后打开的情况下,文件名称也可以正确的显示。

但是在提示下载框中,选择直接打开,则文件名称变成了类似“%E7%BB%99%E7%94%A8%E6%88%B7%E6%8F%90%E4%BE%9B%E7%9A%84%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6%E5%90%8D”的样子。

为了解决这个问题,百度了好久,是这样的

String downloadfile = new String(filepath.getBytes("gb2312"),"iso8859-1");

response.addHeader("Content-Disposition","attachment;filename=" + downloadfile );

还有这样

String userAgent = request.getHeader("User-Agent");
String fORMFileName = "员工表.xls";

// 针对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("multipart/form-data");
response.setCharacterEncoding("UTF-8");
 

发现都不能解决问题,不懈努力,崩溃边缘,最终解决

fileName = URLEncoder.encode(fileName, "UTF-8");response.reset();// fileName后面设置编码格式是重点response.setHeader("Content-disposition", "attachment;filename="+fileName+";"+"filename*=utf-8''"+fileName);response.setContentType("application/octet-stream; charset=UTF-8");IoUtil.copy(inputStream, response.getOutputStream());

完美解决!!!

来源地址:https://blog.csdn.net/m0_56324585/article/details/131577792

--结束END--

本文标题: Java下载文件,中文文件名乱码问题解决(文件名包含很多%)

本文链接: https://www.lsjlt.com/news/390468.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java下载文件,中文文件名乱码问题解决(文件名包含很多%)
    一般情况下,大家都是这样: fileName = URLEncoder.encode(fileName, "UTF-8");response.reset();response.setHeader("Content-disposition",...
    99+
    2023-09-02
    java 前端
  • java下载文件的文件名乱码问题
    java下载文件时文件名出现乱码的解决办法: String userAgent = request.getHeader("User-Agent"); String formFileName = file.getFileNa...
    99+
    2017-09-01
    java
  • java下载文件名中文乱码解决
    在Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。对于这个问题,不同的浏览器,解决的方法不太一样。IE的话,通过URLEncoder对filename进行UTF8编码。而其他的浏览器(firefox、chrome、s...
    99+
    2017-06-24
    java
  • java文件下载中文文件名乱码
    JAVA文件下载时中文文件名乱码有两种情况:下载时中文文件名乱码;下载时因为路径中包含中文文件名乱码,提示找不到文件。相关视频教程分享:java视频教程解决方法如下:response.setContentType("multipart/fo...
    99+
    2021-10-07
    java教程 java 文件 下载 中文 文件名 乱码
  • java下载文件中文文件名乱码
    问题引出:上传中文命名的图片,下载显示不了中文名称。如图:(相关视频教程推荐:java视频教程)解决方法:sping-mvc.xml部分代码: FileController.java中文文件名获取代码:获取浏...
    99+
    2014-05-25
    java教程 java 下载 文件 中文 文件名 乱码
  • java下载文件文件名乱码解决方法
    在进行文件下载的时候出现中文名称乱码,显示不出来:response.setHeader(“Content-Disposition”, “filename=自定义的名称.jpg” )解决办法对中文名称进行编码处理:String fileNam...
    99+
    2016-09-26
    java 乱码
  • Java下载excel文件名中文乱码解决
    我是一名充满激情的程序员,💻希望和大家一起学习进步!我热爱编程,对技术充满好奇心和求知欲! 🗣️无论你是新手还是老手,都能从我的博客中获得有价值的内容! Ὠ...
    99+
    2023-09-10
    java excel python spring
  • java中文件下载及文件名乱码问题总结
    关于java文件下载文件名乱码问题解决方案:(相关学习课程:java视频教程)String fileName = "下载的文件名"; String userAgent = request.getHeader("User-Agent"); ...
    99+
    2021-10-03
    java 文件 乱码
  • java下载文件时文件名乱码
    Web开发下载文件功能(代码如下),文件名如果带有中文,经常会出现乱码现象,需要进行编码。String fileName = "测试文件.doc"; try { HttpServletResponse response = ...
    99+
    2021-08-15
    java 下载 文件 乱码
  • php文件下载文件名乱码如何解决
    本篇内容主要讲解“php文件下载文件名乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php文件下载文件名乱码如何解决”吧!php文件下载文件名乱码的解决办法:1、把“Content-...
    99+
    2023-07-04
  • java中文件下载时文件名乱码的解决方法
    java下载文件时文件名出现乱码的解决办法: String userAgent = request.getHeader("User-Agent"); String formFileName = file.getFileNa...
    99+
    2018-09-25
    java 乱码
  • java下载文件名乱码怎么解决
    Java下载文件名乱码的问题通常是由于编码不一致导致的。可以尝试以下几种方法解决:1. 设置HttpServletResponse的...
    99+
    2023-05-21
    java下载文件 java
  • 如何解决php文件中文名乱码问题
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。如何解决php文件中文名乱码问题php上传文件中文文件名乱码的解决方法文件上传是我们在处理表单提交时候最常用的功能之一,今天写了一个小小的demo,如下:先看结构:ht...
    99+
    2019-04-10
    php 乱码
  • 怎么解决php文件中文名乱码问题
    这篇文章主要介绍了怎么解决php文件中文名乱码问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php文件中文名乱码的解决办法:1、在php文件的头部加入charset代码:...
    99+
    2023-06-22
  • 如何解决Linux下文件名、文件和mp3名字、pdf的乱码问题
    这篇文章主要介绍“如何解决Linux下文件名、文件和mp3名字、pdf的乱码问题”,在日常操作中,相信很多人在如何解决Linux下文件名、文件和mp3名字、pdf的乱码问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-13
  • java下载文件名乱码解决方法详解
    java下载文件名乱码的方法:(推荐:java视频教程)每个浏览器的编码不一样,火狐采用的是base64.ie和谷歌采用的是url编码:所以我们在设置响应头的时候Content-Type getServletContext().getMin...
    99+
    2018-11-08
    java
  • java文件名中文乱码解决方法
    JAVA文件下载时乱码有两种情况:(推荐:java视频教程)1,下载时中文文件名乱码2,下载时因为路径中包含中文文件名乱码,提示找不到文件解决方法见下面部分代码response.setContentType("multipart/form-...
    99+
    2019-04-23
    java
  • php 文件下载文件名乱码怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 文件下载文件名乱码怎么办PHP下载文件名解决乱码通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作...
    99+
    2022-10-21
  • java下载文件名乱码解决方法介绍
    java Web开发下载文件功能(代码如下),文件名如果带有中文,经常会出现乱码现象,需要进行编码。(推荐:java视频教程)String fileName = "测试文件.doc"; try { HttpServletRespo...
    99+
    2016-05-19
    java
  • drupal6上传中文文件名附件乱码问题解决方法
    本文实例讲述了drupal6上传中文文件名附件乱码问题解决方法。分享给大家供大家参考。具体方法如下: drupal6的upload模块只能上传英文名字的文件,我经过一段时间的测试,完美解决了drupal下中文文档上传的问...
    99+
    2022-06-12
    drupal6 上传 中文 文件名 附件 乱码问题 解决方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作