Wie legen Sie UTF-8-Kodierung für Datei-download-servlet
Ich habe ein servlet sendet eine Datei an den browser.
Sende ich diesen Header in der servlet.
if (request.isSecure()) {
response.addHeader("Pragma", "no-cache");
response.addHeader("Expires", "-1");
response.addHeader("Cache-Control", "no-cache");
} else {
response.addHeader("Cache-Control", "private");
response.addHeader("Pragma", "public");
}
if (isIE) {
response.addHeader("Content-Disposition", "attachment; filename=\"" + encName + "\"" );
response.addHeader("Connection", "close");
response.setContentType("application/force-download; name=\"" + encName + "\"" );
} else {
response.addHeader("Content-Disposition", "attachment; filename=\"" + encName + "\"" );
response.setContentType("application/octet-stream; name=\"" + encName + "\"" );
if (contentLen > 0) {
response.setContentLength(contentLen);
}
}
Dann sende ich die Datei an den browser, aber ich habe Probleme mit dem Datei-Codierung. Der Inhalt der Datei ist UTF-8, aber ich weiß nicht, wie das senden eines headers für diese.
Hat jemand eine Idee wie ich es machen kann?
InformationsquelleAutor Ignacio | 2010-12-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Notwendigkeit, um dem browser mitzuteilen, dass die Datei UTF-8 kodiert. Durch das setzen des content-type auf application/octet-stream angeben, dass die Datei darf nicht interpretiert werden, und darf nicht "nur-text" an alle.
Wenn Sie unbedingt wollen, deklarieren eine Kodierung, stop-Deklaration der Datei als application/octet-stream, und deklarieren es als "text/plain; charset=utf-8" statt.
Accept: application/octet-stream
header hat den trick.InformationsquelleAutor Martin v. Löwis
Antwort.setCharacterEncoding("utf-8");
InformationsquelleAutor Gursel Koca