`
zhanshenny
  • 浏览: 265697 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浏览器下载文件中文乱码问题

 
阅读更多

浏览器能正确识别的编码格式,只要按照这样的编码来设置对应的Content-Disposition,那么应该就不会出现中文文件名的乱码问题了。 
首先,Content-Disposition值可以有以下几种编码格式 
1.
直接urlencode 

    Content-Disposition: attachment; filename="struts2.0%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B.chm" 

2. Base64
编码: 

    Content-Disposition: attachment; filename="=?UTF8?B?c3RydXRzMi4w5Lit5paH5pWZ56iLLmNobQ==?=" 

3. RFC2231
规定的标准: 

    Content-Disposition: attachment; filename*=UTF-8''%E5%9B%9E%E6%89%A7.msg 

4.
直接ISO编码的文件名: 

    Content-Disposition: attachment;filename="
测试.txt" 

然后,各浏览器支持的对应编码格式为: 

1.  IE
浏览器,采用URLEncoder编码 
2.  Opera
浏览器,采用filename*方式 
3.  Safari
浏览器,采用ISO编码的中文输出 
4.  Chrome
浏览器,采用Base64编码或ISO编码的中文输出 
5.  FireFox
浏览器,采用Base64filename*ISO编码的中文输出 

 

实例代码:

 

                String agent = request.getHeader("USER-AGENT");

                if(agent != null && agent.indexOf("MSIE") != -1) {

                    fileName = URLEncoder.encode(fileName,"UTF8");

                } else {

                    fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");

                }

                response.setContentType("application/octet-stream;charset=UTF-8");

                response.setHeader("Content-Disposition","attachment; filename=\"" + fileName +"\"");

                try {

                    FileCopyUtils.copy(new FileInputStream(file),response.getOutputStream());

                } catch (IOException e) {

                    e.printStackTrace();

                }

            }

分享到:
评论

相关推荐

    解决不同浏览器下载时中文名乱码问题

    ### 解决不同浏览器下载时中文名乱码问题 在Web开发过程中,经常遇到的一个问题是当用户尝试下载包含中文字符的文件名时,会出现乱码的情况。这是因为不同的浏览器处理文件名编码的方式有所不同,导致服务器端设置...

    不同浏览器上中文文件名的下载乱码问题

    不同浏览器上中文文件名的下载乱码问题 浏览器IEChromeSafariOpera 浏览器能正确识别的编码格式

    html文件的中文乱码问题与在浏览器中的显示问题

     在网页中,中文乱码的问题时常出现。以前我遇到乱码问题时,就是不停的尝试不同的编码方式,直到成功。昨天项目又遇到了这个问题,我于是做了简单的测试。  html文件是有编码方式的,比如"UTF-8"、"GBK"等等。...

    Jmeter5.5上传文件中文乱码问题解决包

    解决Jmeter5.5、Jmeter5.5、Jmeter5.5上传文件中文乱码问题和录制脚本中文乱码问题,其他版本请勿使用! 使用时替换原本的lib\ext目录下的ApacheJMeter_http.jar文件并重启,上传文件时,需要勾选“对POST使用...

    获取当前浏览器的类型及乱码问题

    下面是一个具体的例子,展示了如何通过JavaScript函数实现文件下载,并处理URL中的中文乱码问题: ```html ('${test.fileUrl}');">${test.fileName} function downLoadFile(addr) { var url = "/RCPFM/...

    解决浏览器请求响应中文文件名乱码问题的小工具包,解决中文文件名问题

    首先,我们需要理解问题的核心:浏览器在请求服务器上的资源,特别是文件时,如果文件名包含中文字符,可能会因为编码不一致导致乱码。这主要涉及到字符编码的两个关键概念——Unicode和字符编码转换。 1. **...

    Java实现文件下载并解决中文文件名乱码

    然而,在实际操作过程中可能会遇到一个常见问题:当文件名包含中文字符时,下载后的文件名可能出现乱码的情况。本文将详细介绍如何使用Java实现文件下载功能,并重点讲解如何解决中文文件名乱码的问题。 #### 一、...

    解决Jmeter5.3上传文件中文乱码问题和录制脚本中文乱码问题ApacheJMeter_http.jar

    解决Jmeter5.3上传文件中文乱码问题和录制脚本中文乱码问题,替换原本的lib\ext目录下的ApacheJMeter_http.jar文件,上传文件时,需要勾选“对POST使用multipart / form-data” 和 “与浏览器兼容的头”选项,并在...

    Java Web文件下载,解决了使用IE11下载文件时所出现的乱码问题

    分析这个文件可以帮助我们深入理解解决IE11下载文件乱码问题的方法。具体来说,这个文件可能包含了Servlet的实现,通过设置正确的HTTP响应头,确保文件名在下载过程中正确显示。 总的来说,解决Java Web中IE11下载...

    文件下载,二进制流转换成文件 解决中文名乱码的问题

    在IT领域,尤其是在Web开发中,处理文件下载和解决中文文件名乱码问题是常见的需求之一。本文将深入探讨如何通过二进制流转换为文件来实现文件下载,并着重讲解如何解决中文文件名出现的乱码问题。 ### 文件下载...

    Linux下Chrome标题栏中文乱码的解决办法.docx

    例如,解决Chrome浏览器标题栏中文乱码问题需要对字体配置文件进行修改。 知识点8: 字体配置文件的修改方法 字体配置文件的修改方法是通过使用文本编辑器打开配置文件,然后修改相应的配置项来实现的。例如,修改...

    Struts2下载文件中文乱码处理

    ### Struts2下载文件中文乱码处理 在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够...

    下载文件提示框中文乱码

    在IT领域,中文乱码是一个常见的问题,尤其是在处理文件下载和显示时。本文将深入探讨“下载文件提示框中文乱码”这一主题,提供相关的知识背景、原因分析以及解决方案。 一、乱码产生的原因 1. 编码不兼容:在...

    struts2文件下载(解决了中文乱码问题)

    在处理文件下载时,Struts2提供了一套完整的解决方案,包括处理中文文件名的乱码问题。在标题提到的场景中,开发者可能遇到了在使用Myeclipse 6.5集成开发环境,JDK1.6和Tomcat 6.0服务器环境下,通过Struts2进行...

    php导出csv文件无乱码示例

    在上述代码中,`header()`函数用于设置HTTP响应头,告知浏览器文件的类型和编码,确保在下载时正确解析。`fopen('php://output', 'w')`打开的是一个伪文件,其实体是浏览器的输出流。数据会被直接输出到浏览器,用户...

    AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题

    ### AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题 #### 背景与问题概述 在使用AJAX技术进行前后端数据交互时,经常会出现中文字符编码的问题,尤其是在使用`XMLHttpRequest`对象发送请求的过程中。例如...

    解决中文乱码问题

    解决中文乱码问题需要从多个方面入手,包括设置Eclipse的编码方式、浏览器的字符设置、数据库的字符集选择等。同时,我们还需要根据实际情况选择合适的解决方式,以便正确地显示和存储中文字符。

    ACCESS+ASP中文乱码问题的解决方法借鉴.pdf

    在这个文件中,我们将对 ACCESS+ASP 中文乱码问题的解决方法进行总结和借鉴。 解决方法一:在每一页的开头加上 `<%@ CODEPAGE = "936" %>` 或 `<%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>`。这可以将.asp 文件的...

    彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题

    本文用 C# 代码解决了在目前四种流行浏览器中Asp.net 输出文件流时文件名的空格及中文字符乱码这两个问题。使用本文的代码,你将可以让 IE(Internet Explorer)、Opera、Firefox 及 Chrome 的用户享受到没有乱码且...

Global site tag (gtag.js) - Google Analytics