public void encodeFileName()throws Exception{
try {
HttpServletRequest httpRequest = ServletActionContext.getRequest(); //此处是struts2的httpRequest
Boolean flag = httpRequest.getHeader("User-Agent").indexOf("like Gecko") > 0;
if (httpRequest.getHeader("User-Agent").toLowerCase().indexOf("msie") > 0 || flag) {
fileName = URLEncoder.encode(fileName, "UTF-8");// IE浏览器
} else {
// firefox浏览器
// firefox浏览器User-Agent字符串:
// Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101
// Firefox/36.0
// 先去掉文件名称中的空格,然后转换编码格式为utf-8,保证不出现乱码,
// 这个文件名称用于浏览器的下载框中自动显示的文件名
fileName = new String(fileName.replaceAll(" ", "").getBytes("GB2312"), "ISO8859-1");
}
} catch (Exception e) {
e.printStackTrace();
addActionError("文件已被删除!");
return;
}
}
分享到:
相关推荐
本文将详细介绍如何使用Java实现文件下载功能,并重点讲解如何解决中文文件名乱码的问题。 #### 一、基本原理与步骤 1. **读取文件**:首先需要将要下载的文件读取到内存中。 2. **设置响应头**:为了正确地告知...
首先,我们需要理解问题的核心:浏览器在请求服务器上的资源,特别是文件时,如果文件名包含中文字符,可能会因为编码不一致导致乱码。这主要涉及到字符编码的两个关键概念——Unicode和字符编码转换。 1. **...
在IT领域,特别是Web开发中,处理文件下载时遇到文件名乱码问题是一个常见的挑战,尤其是在不同的服务器环境下,如WeLogic与Tomcat之间的差异。本文将深入探讨在WeLogic服务器中使用Struts2框架进行文件下载时遇到的...
在使用上述方法解决中文文件名乱码问题时,还需要考虑浏览器兼容性,确保在不同的浏览器上都能正确显示文件名。 总结来说,通过设置正确的Content-Disposition响应头,并将文件名进行UTF-8编码,可以有效解决Web...
在IT领域,尤其是在Web开发中,处理文件下载和解决中文文件名乱码问题是常见的需求之一。本文将深入探讨如何通过二进制流转换为文件来实现文件下载,并着重讲解如何解决中文文件名出现的乱码问题。 ### 文件下载...
总的来说,解决Java下载文件时的文件名乱码问题,需要理解HTTP协议和浏览器对文件名编码的处理差异,以及利用适当的编码转换方法,确保在所有支持的浏览器中都能正确显示和保存文件名。在编写代码时,一定要注意兼容...
在Java编程中,遇到“java下载时文件名乱码”的问题通常是由于编码不一致或处理不当造成的。在处理文件下载时,尤其是从Web服务器下载带有非ASCII字符的文件名时,这种问题尤为常见。让我们深入探讨这个问题,并提供...
总的来说,解决中文文件名乱码问题需要从多个角度考虑,包括服务器配置、HTTP头部设置、编码转换以及选择合适的工具。了解并掌握这些知识点,有助于我们在实际工作中更顺畅地处理各种语言环境下的文件下载问题。对于...
对于中文文件名而言,若未进行正确的编码转换,则不同浏览器会表现出不同的解析结果,从而导致乱码问题。 #### 二、解决思路 针对此问题,我们可以通过检测用户的浏览器类型,并根据不同的浏览器类型来动态地对...
解决Jmeter5.5、Jmeter5.5、Jmeter5.5上传文件中文乱码问题和录制脚本中文乱码问题,其他版本请勿使用! 使用时替换原本的lib\ext目录下的ApacheJMeter_http.jar文件并重启,上传文件时,需要勾选“对POST使用...
文件名乱码通常是因为浏览器在处理文件下载时,没有正确地编码和解码包含特殊字符的文件名。这与浏览器的实现方式和HTTP协议的处理有关。例如,Internet Explorer (IE) 和 Firefox 对文件名编码的处理方式就有所不同...
解决Jmeter5.3上传文件中文乱码问题和录制脚本中文乱码问题,替换原本的lib\ext目录下的ApacheJMeter_http.jar文件,上传文件时,需要勾选“对POST使用multipart / form-data” 和 “与浏览器兼容的头”选项,并在...
总的来说,通过合理的文件名编码和对浏览器特性的判断,可以克服Asp.net中文件下载时的中文乱码和空格问题,确保用户在各种浏览器环境下都能获得良好的下载体验。这个解决方案不仅适用于标准的ASCII字符集,也支持...
本文将详细介绍如何在Java中处理导出文件时的文件名问题,确保用户能够正常下载带有中文或其他特殊字符的文件名。 #### 知识点一:理解文件名编码问题 在Web应用中,当服务器向客户端发送文件时,HTTP协议中会包含...
### 知识点二:IE浏览器中文文件名乱码问题的原因及解决方案 由于IE浏览器在处理URL编码上的一些历史问题,直接将包含中文字符的文件名放入header函数会导致乱码现象。为了解决这个问题,需要先将中文文件名进行URL...
在Java应用中实现文件下载功能时,经常遇到的一个问题是输出文件名中的中文字符会出现乱码。这主要是因为HTTP协议在传输文件名时,默认使用的是ISO-8859-1编码,而中文字符在此编码下无法正确解析,从而导致乱码的...
本项目针对的一个重要问题就是如何在使用IE11浏览器时避免出现文件名乱码的情况。 首先,我们要理解这个问题的根源。IE11在处理非ASCII字符的文件名时,可能会由于编码不一致导致乱码。这是因为不同的系统和浏览器...
针对JSmartCom的中文文件名乱码问题,我们需要对源码进行如下修改: 1. **检查URL编码**:在发送请求时,确保中文文件名被正确地URL编码。在JavaScript中,可以使用`encodeURIComponent()`函数将文件名转化为URL...