Heim > Java > javaLernprogramm > Was tun, wenn Java IE verstümmelte Zeichen hat?

Was tun, wenn Java IE verstümmelte Zeichen hat?

藏色散人
Freigeben: 2020-04-05 09:41:07
Original
2538 Leute haben es durchsucht

Was tun, wenn Java IE verstümmelte Zeichen hat?

Was tun, wenn Java verstümmelt ist? Java verwendet den IE-Browser zum Herunterladen von Dateien, der Dateiname ist verstümmelt.

Empfohlenes Tutorial: „Java-Lernen

Bei Verwendung von Servlet zur Implementierung der Datei-Download-Funktion erscheint der Dateiname beim Herunterladen mit IE verstümmelt;

Eine häufige Vorgehensweise Die Online-Lösung besteht darin, „user-agen“ zu verwenden. „Um den Browser zu beurteilen:

if (req.getHeader("user-agent").toLowerCase().contains("msie")) {  
        // IE  
    filename = URLEncoder.encode(filename, "UTF-8");  
} else {  
        // 非IE  
    filename = new String(filename.getBytes("UTF-8"), "iso-8859-1");  
}
Nach dem Login kopieren

Aber in Windows 10 wurde die Benutzeragentenzeichenfolge geändert und ist nicht mehr „msie“

Kompatibel ( „kompatibel“) und Browser-Token („MSIE“) wurden gelöscht.

Token „like Gecko“ wurde hinzugefügt (um mit anderen Browsern konsistent zu sein).

Browserversionen werden jetzt durch das neue Versions-Token („rv“) gemeldet.

win 10 ie user-agent
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko ie 11
win 10 edge user-agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393 edge
Nach dem Login kopieren

Sie können msie also nicht verwenden, um festzustellen, ob es sich um einen IE-Browser handelt.

String userAgent = req.getHeader("user-agent").toLowerCase();  
  
if (userAgent.contains("msie") || userAgent.contains("like gecko") ) {  
        // win10 ie edge 浏览器 和其他系统的ie  
    fileName = URLEncoder.encode(fileName, "UTF-8");  
} else {  
        // fe  
    fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");  
}
Nach dem Login kopieren

Projektbeispielcode:

try {
                String fileName = attachmentFile.originalName();
                String userAgent = request.getHeader("user-agent").toLowerCase();  
                if (userAgent.contains("msie") || userAgent.contains("like gecko") ) {  
                        // win10 ie edge 浏览器 和其他系统的ie  
                    fileName = URLEncoder.encode(fileName, "UTF-8");  
                } else {  
                        // fe  
                    fileName = new String(fileName.getBytes("utf-8"), "iso-8859-1");  
                }  
                response.setCharacterEncoding("utf-8");
                response.setContentType("multipart/form-data");
                response.setHeader("Content-Disposition",
                        "attachment;fileName=" + fileName);
                String path = attachmentFile.path();
                InputStream inputStream = new FileInputStream(new File(path));
                OutputStream os = response.getOutputStream();
                byte[] b = new byte[2048];
                int length;
                while ((length = inputStream.read(b)) > 0) {
                    os.write(b, 0, length);
                }
                // 这里主要关闭。
                os.close();
                inputStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas tun, wenn Java IE verstümmelte Zeichen hat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage