Heim >Java >JavaBase >Lösen Sie den verstümmelten chinesischen Dateinamen des Java-Downloads

Lösen Sie den verstümmelten chinesischen Dateinamen des Java-Downloads

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

Lösen Sie den verstümmelten chinesischen Dateinamen des Java-Downloads

Bei der Java-Webentwicklung tritt häufig das Problem verstümmelter Dateinamen in Datei-Download-Funktionen auf.

Verschiedene Browser bieten unterschiedliche Lösungen für dieses Problem.

Für IE kodiert UTF8 den Dateinamen über URLEncoder.

Andere Browser (Firefox, Chrome, Safari, Opera) müssen Bytes in ISO8859-1 konvertieren.

Lösung für den chinesischen verstümmelten Java-Download-Dateinamen:

    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);

Für weitere Java-Kenntnisse beachten Sie bitte das Java-Grundlagen-Tutorial.

Das obige ist der detaillierte Inhalt vonLösen Sie den verstümmelten chinesischen Dateinamen des Java-Downloads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn