文档章节

J2EE 下载文件名中文乱码问题

B
 BlueWoods
发布于 2016/09/20 11:12
字数 161
阅读 15
收藏 2

在JAVA WEB APP里下载文件,当包含中文名称时,会在不同浏览器, 不同操作系统里,产生乱码的问题;

试过下面的方法,没有效果

        String name = fileName + ".xlsx";
        if (httpServletRequest.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
            name = URLEncoder.encode(name, "GBK");
        } else {
            name = new String(name.getBytes("GBK"), "ISO8859-1");
        }

        httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + name);

最后在StackOverflow上面找到了一个有效的方法;测试过在MAC,Windows, IE, Chrome, FF里都可以;

final String encodedFileName = encodeFilename(fileNameToEncode); 
response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);

private String encodeFilename(final String filename)
{
  try{        
    URI uri = new URI(null, null, filename, null);      
    String encodedName = uri.toASCIIString(); 
    return encodedName;
  }
  catch(URISyntaxException ex){
      return filename;
  }
}

from: http://stackoverflow.com/questions/22319277/how-to-set-chinese-filename-correctly-for-different-browsers-when-download-file

© 著作权归作者所有

B
粉丝 4
博文 39
码字总数 21286
作品 0
杭州
私信 提问
jsp简介

Jsp简介 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和...

晨曦之光
2012/05/16
298
0
jsp、servlet中文乱码终极解决方法

jsp中文乱码终极解决方法 一 找出问题的根源 乱码可能出现的地方:1 jsp页面中 2 jsp页面之间相互传参的参数 3 与数据库中数据的存取 基本归纳为以上几种。 二 寻找解决方案 1 出现在jsp页面...

长平狐
2012/11/12
466
0
Servlet从浏览器获取数据出现乱码,高手替我解决下

本人java新手,最近初习servlet ,装好TOMCAT 7 之后能正常运行一般JSP和servlet程序,但是我试着用servlet获取html 的表单数据时却发现,只能获取英文,中文就出现乱码,试过了在servlet 的...

浪漫的菜鸟
2010/10/13
1K
3
Tomcat 5.5.x JSP中文问题的解决

Tomcat 已经推出了 5.5.x版本,你可以通过这个地址查看新的特性:http://jakarta.apache.org/tomcat/tomcat-5.5-doc/changelog.html 。 说老实话我没有细看这些变化,但是本着对Tomcat的强力...

红薯
2008/10/05
152
0
JSP表单提交中文时出现乱码

一、JSP页面显示乱码 下面的显示页面(display.jsp)就出现乱码: JSP的中文处理 <% out.print("JSP的中文处理"); %> 对 不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用...

xiaodaiyy11
2011/11/17
4K
2

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 他只能用这个办法劝你注意身体了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# Kodaline《High Hopes》 《High Hopes》- Kodaline 手机党少年们想听歌,请使劲儿戳(这里) @xiaoshiyue :仙女...

小小编辑
2分钟前
51
3
Spring Boot Actuator 整合 Prometheus

简介 Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观...

程序员果果
11分钟前
3
0
Linux文件查找命令详解

对于文件查找,我们最好用的还是属于find命令了,在说find命令之前,先把另外几个查找命令介绍一下。 目录 0x01 查询命令介绍 0x02 find命令介绍 0x01 查询命令介绍 在介绍之前,首先先了解一...

无心的梦呓
11分钟前
3
0
快速掌握的测试用例优先级划分方法

怎么样的设计才能算测试用例 引自:IEEE Standard 610 (1990): A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exe......

测者陈磊
15分钟前
3
0
[mycat]Attribute value "roadNodeId,version" of type NMTOKEN must be a name token

不能逗号配两个字段的主键 primaryKey="roadNodeId,version" Caused by: io.mycat.config.util.ConfigException: org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 105; Attrib......

Danni3
20分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部