Erstellen UTF-8-Datei mit HttpServletResponse
Ich versuche zum erstellen einer UTF-8-Datei "myFile.aaa" mit HttpServletResponse (HttpServlet). Der Grund, warum ich brauche diese als UTF-8 ist, da es möglicherweise enthalten spezielle nicht druckbare Zeichen.
Jedoch code unten scheint zu erstellen ANSI-codierte Datei. Mindestens das ist, was Notepad++ sagt, und dem, was ich sehen, Lesen chars aus dieser Datei. Was mache ich falsch?
Dank
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setHeader("Content-Type", "application/octet-stream; charset=UTF-8");
res.setHeader("Content-Disposition","attachment;filename=myFile.aaa");
res.setCharacterEncoding("UTF-8");
ServletOutputStream os = res.getOutputStream();
os.print("Hello World");
os.flush();
os.close();
}
- Warum würden Sie wollen, geben Sie
charset
auf eineoctet-stream
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie den Charakter Verfasser der Antwort, nicht die byte-Ausgabestrom.
Ersetzen
durch
Weiter, würde ich empfehlen, die Einstellung content-type
text/plain
, nicht zu einer übermäßig generischen was bedeutet binäre die Inhalte, nicht die Charakter-Inhalte.Ich bin mir nicht sicher über Notepad++, aber im Editor, wenn der text-Dokument enthalten keine Zeichen außerhalb des ANSI-Reichweite ist, wird es interpretiert werden als ANSI. Nicht täuschen Sie durch dieses Verhalten.
Hier ist mein Beispiel: