解决response.setHeader("Content-disposition" 中文乱码问题

编程知识 更新时间:2023-04-05 07:17:55

Content-Disposition中文乱码

Response.setHeader(”Content-Disposition”, “attachment; filename=” + fileName+”.xls”);
如果file.Name为中文则乱码。解决办法是

response.setHeader(”Content-Disposition”, “attachment; filename=” + java.URLEncoder.encode(fileName, “UTF-8″));


下载的程序里有了上面一句,一般在IE6的下载提示框上将正确显示文件的名字,无论是简体中文,还是日文。但是文字只要超过17个字,就不能下载了。
一. 通过原来的方式,也就是先用URLEncoder编码,当中文文字超过17个时,IE6 无法下载文件。这是IE的bug,参见微软的知识库文章 KB816868 。原因可能是IE在处理 Response Header 的时候,对header的长度限制在150字节左右。而一个汉字编码成UTF-8是9个字节,那么17个字便是153个字节,所以会报错。而且不跟后缀也不对.

更多推荐

解决response.setHeader("Content-disposition" 中文乱码问题

本文发布于:2023-04-05 07:17:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/f602963d5728407b79aebbc952f3c11f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:乱码   中文   setHeader   response   quot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 45500文章数
  • 14阅读数
  • 0评论数