`
f0rb
  • 浏览: 119253 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

兼容各浏览器的文件下载时中文名称乱码的解决方案

阅读更多
public class DownloadServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // codes..
        String name = "中文名 带空格 的测试文件.txt";
        String userAgent = request.getHeader("User-Agent");
        byte[] bytes = userAgent.contains("MSIE") ? name.getBytes() : name.getBytes("UTF-8"); // name.getBytes("UTF-8")处理safari的乱码问题
        name = new String(bytes, "ISO-8859-1"); // 各浏览器基本都支持ISO编码
        response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", name)); // 文件名外的双引号处理firefox的空格截断问题
        // codes..
    }
}


这段代码处理了文件下载时不同浏览器解析中文文件名所出现的乱码问题和firefox的空格截断问题,在IE9, chrome, opera, safari, firefox下均测试通过。

2
0
分享到:
评论
4 楼 夜天袭胸魔 2015-04-22  
我擦,解决了,NB啊!之前谷歌中文正常,火狐却是“%1A%2B%3C.....”这种名字,用了楼主方法完美解决。
3 楼 jiangkeju 2014-12-17  
终于解决了问题。
2 楼 TheMatrix 2014-03-03  
真棒!!完美解决问题。
1 楼 zyzyqzxk 2014-01-07  
  帮了我大忙了。

相关推荐

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

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

    下载文件提示框中文乱码

    本文将深入探讨“下载文件提示框中文乱码”这一主题,提供相关的知识背景、原因分析以及解决方案。 一、乱码产生的原因 1. 编码不兼容:在计算机系统中,文本文件的编码格式多种多样,如GBK、UTF-8等。当源文件...

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

    本篇文章主要针对这些问题提供了解决方案,以确保在IE(Internet Explorer)、Opera、Firefox和Chrome这四大主流浏览器中,文件下载时的文件名能够正确显示,不受空格或非ASCII字符的影响。 首先,让我们了解两个...

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

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

    freemarker 中文乱码解决

    在处理Freemarker模板引擎时,中文乱码问题是一个常见的挑战,尤其是在国际化应用中。Freemarker是一款功能强大的模板引擎,被广泛应用于Web开发中,用于动态生成HTML、XML等文本格式的页面。然而,当涉及到非英文...

    下载中文名称出现乱麻解决方案

    ### 下载中文名称出现乱码解决方案 #### 一、背景介绍与问题描述 在进行Java Web应用程序开发过程中,经常会遇到用户需要下载文件的情况。如果这些文件的名称包含中文字符,在某些浏览器或操作系统环境下,可能会...

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

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

    网页获取JSON中文返回乱码解决方案(java + js)

    本文将针对"网页获取JSON中文返回乱码解决方案"进行深入探讨,包括Java后端与JavaScript前端的处理策略。 首先,我们要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个...

    JavaWeb开发中文乱码问题解决方案

    4. **Filter实现中文乱码解决方案**: - 对于请求乱码,可以在`doFilter`方法中获取请求参数,然后通过`setCharacterEncoding`设置请求的编码格式,如`request.setCharacterEncoding("UTF-8")`。 - 对于响应乱码,...

    IE 浏览器在get请求下中文乱码的问题.zip

    例如,服务器返回的页面使用UTF-8编码,但IE浏览器假设它是GBK编码,那么浏览器在解码时就会出错,显示为乱码。 解决IE浏览器GET请求下的中文乱码问题,通常有以下几种方法: 1. **服务器端设置**:确保服务器返回...

    ajax乱码解决方案

    **Ajax 乱码解决方案** Ajax 乱码问题在开发Web应用程序时经常遇到,尤其是在涉及到不同编码格式时。本文将深入探讨Ajax与字符编码相关的技术细节,并提供几种有效的解决策略。 首先,JavaScript处理字符的方式是...

    Java应用下载文件功能,输出文件名中的中文乱码

    在Java应用中实现文件下载功能时,经常遇到的一个问题是输出文件名中的中文字符会出现乱码。这主要是因为HTTP协议在传输文件名时,默认使用的是ISO-8859-1编码,而中文字符在此编码下无法正确解析,从而导致乱码的...

    .net从服务器下载文件中文名乱码解决方案

    《.NET从服务器下载文件中文名乱码的解决策略》 在.NET开发中,服务器向客户端提供文件下载服务是一项常见的任务。然而,当文件名包含中文字符时,由于编码问题,可能会导致文件名显示为乱码。本文将深入探讨这个...

    highchats_乱码解决方案

    本文将深入探讨Highcharts出现乱码的原因,并提供一系列的解决方案,帮助你解决这一问题。 **乱码问题的原因** 1. **字符编码不一致**:在HTML文档和Highcharts中,字符编码不匹配可能导致乱码。例如,HTML页面...

    日文乱码解决利器

    标题中的“日文乱码解决利器”指的是针对中文系统下显示日文文本出现乱码问题的一种解决方案。在处理跨语言的计算机系统时,尤其是中文系统显示非中文字符集(如日文)时,由于编码不匹配,往往会出现乱码现象。这种...

    J2ee应用中文乱码问题解决方案.doc

    以下是对这个问题的详细解析和解决方案: 1. **字符集概念**: - **ASCII**:7位字符集,包含128个字符,主要为英文字符。 - **ISO-8859-1**:扩展ASCII,增加了一些西欧语言的字符。 - **双字节字符集**:如GB...

    文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf

    在IT行业中,尤其是在Web开发领域,文件下载是一个常见的功能,然而在处理中文文件名时,可能会遇到乱码问题。本文将深入探讨这个问题及其解决方案,同时也会介绍HTTP消息头的相关知识。 首先,我们要明白HTTP消息...

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

    当使用`XMLHttpRequest`对象发送带有中文字符的数据时,可能会遇到中文显示为乱码的情况。这种现象主要由以下几个因素造成: 1. **客户端与服务器端编码不一致**:客户端在发送请求时对中文字符进行了编码,但...

    mysql+jsp+SSH网站开发中文乱码解决方案

    在进行MySQL、JSP以及SSH(Struts、Spring、Hibernate)框架集成的网站开发时,中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致、设置不当或处理方式错误导致的。以下是一些关键的知识点,可以帮助你解决...

Global site tag (gtag.js) - Google Analytics