Home >Java >JavaBase >Solve the problem of Chinese garbled file name in java download

Solve the problem of Chinese garbled file name in java download

尚
Original
2019-11-22 16:06:484457browse

Solve the problem of Chinese garbled file name in java download

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn