用火狐浏览器下载中文文件名的文件乱码及其解决

java写的下载,用IE默认下载和360浏览器下载都很正常,就是用火狐浏览器下载时,文件名称的中文字为乱码,解决方式记录于此:

先在页面做下判断,判断是什么浏览器,然后传一个参数到servlet,进行用不同的编码方式:
火狐的:
response.addHeader("Content-Disposition", "attachment;filename="+ new String(fileName.getBytes("GB2312"),"ISO-8859-1"));
IE及其他:
response.addHeader("Content-Disposition", "attachment; filename="+ URLEncoder.encode(fileName, "UTF-8"));


参考其他资料,火狐中文文件名乱码可以先将中文文件名做Base64编码处理后可按一般浏览器的方式处理,具体可以参考:

http://bbs.csdn.net/topics/370099592


顺便说下java怎么判断浏览器的类型:

request.getHeader("User-Agent")中有含有浏览器操作系统等信息。

posted @ 2013-05-16 16:51  IT_熊  阅读(3185)  评论(0)    收藏  举报