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")中有含有浏览器操作系统等信息。