WEB开发时,上传下载功能太常见了,而困扰开发人员的字符集,以及编码问题一起比较纠结,小弟最近也碰到下载时乱码的问题,乱码的情况,IE下点下载超链接时能够正常为显示(我是比较喜欢IE的),而在FireFox下则会出现乱码。搜集了网上的资料,解决办法如下:
请看代码:
- String agent = (String)request().getHeader("USER-AGENT");
- if(agent != null && agent.indexOf("MSIE") == -1) {// FF
- String enableFileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes("UTF-8")))) + "?=";
- response().setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
- } else { // IE
- String enableFileName = new String(fileName.getBytes("GBK"), "ISO-8859-1");
- response().setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
- }