java下载文件名中文乱码解决
内容摘要
在Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。对于这个问题,不同的浏览器,解决的方法不太一样。IE的话,通过URLEncoder对filename进行UTF8编码。而其他
文章正文
在Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。
对于这个问题,不同的浏览器,解决的方法不太一样。
IE的话,通过URLEncoder对filename进行UTF8编码。
而其他的浏览器(firefox、chrome、safari、opera),则要通过字节转换成ISO8859-1了。
java下载文件名中文乱码解决:
1 2 3 4 5 6 7 8 9 10 11 12 | 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基础教程。
代码注释
[!--zhushi--]