在java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。
对于这个问题,不同的浏览器,解决的方法不太一样。
ie的话,通过urlencoder对filename进行utf8编码。
而其他的浏览器(firefox、chrome、safari、opera),则要通过字节转换成iso8859-1了。
java下载文件名中文乱码解决:
response.setcharacterencoding("utf-8"); response.setcontenttype("application/msword"); string filename="哈哈哈哈.doc"; if (request.getheader("user-agent").tolowercase().indexof("firefox") > 0) { filename = new string(filename.getbytes("utf-8"), "iso8859-1"); // firefox浏览器 } else if (request.getheader("user-agent").touppercase().indexof("msie") > 0) { filename = urlencoder.encode(filename, "utf-8");// ie浏览器 }else if (request.getheader("user-agent").touppercase().indexof("chrome") > 0) { filename = new string(filename.getbytes("utf-8"), "iso8859-1");// 谷歌 } response.setheader("content-disposition", "attachment; filename=" + filename);
更多java知识请关注java基础教程。
以上就是java下载文件名中文乱码解决的详细内容。