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!