In Java web development, the problem of garbled file names in file download functions is often encountered.
Different browsers have different solutions to this problem.
For IE, UTF8 encode the filename through URLEncoder.
Other browsers (firefox, chrome, safari, opera) need to convert bytes to ISO8859-1.
Solution to Chinese garbled java download file name:
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);
For more java knowledge, please pay attention to java basic tutorial.
The above is the detailed content of Solve the problem of Chinese garbled file name in java download. For more information, please follow other related articles on the PHP Chinese website!