在生产服务器上,有很多JSP出现下载excel附件时,文件名出现乱码的问题(文件中的内容正常)。
解决方法:
A: fileName = URLEncoder.encode(fileName , "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
优点,支持国际化,日语、台湾、中文附件名都支持;
缺点,文件名不能超过17个汉字(IE6的BUG,可以打补丁解决, http://support.microsoft.com/default.aspx?kbid=816868)
解决方法:
A: fileName = URLEncoder.encode(fileName , "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
优点,支持国际化,日语、台湾、中文附件名都支持;
缺点,文件名不能超过17个汉字(IE6的BUG,可以打补丁解决, http://support.microsoft.com/default.aspx?kbid=816868)
。
B: response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes
("gb2312"), "ISO8859-1" ) );
优点,支持GB2312文件名,长度无限制;
缺点,不支持日文等附件名。
此问题在JDK1.5中出现,以前版本JDK1.3似不存在此类问题。