Créer des fichiers UTF-8 à l'aide de HttpServletResponse
Je suis en train de créer un fichier UTF-8 "monfichier.aaa" à l'aide de HttpServletResponse (HttpServlet). La raison pourquoi j'ai besoin de cela pour être en UTF-8 est parce qu'il peut contenir des caractères non-imprimables.
Cependant, le code ci-dessous semble créer ANSI-fichier encodé. C'est du moins ce que Notepad++ est dit, et ce que je peux voir de la lecture de caractères à partir de ce fichier. Ce que je fais mal?
Grâce
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();
}
Pourquoi voudriez-vous de spécifier
charset
sur un octet-stream
?OriginalL'auteur Arturo | 2012-02-19
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser le caractère auteur de la réponse, pas les octets du flux de sortie.
Remplacer
par
Plus loin, je vous recommande l'établissement type de contenu à
text/plain
, de ne pas trop générique qui implique un contenu binaire, n'est pas de caractère de contenu.Je ne suis pas sûr de Notepad++, mais dans le bloc-notes, si le texte du document ne contient pas les caractères au-delà de la norme ANSI, il sera interprété comme l'ANSI. Ne pas vous induire en erreur par ce comportement.
OriginalL'auteur BalusC
Voici mon exemple:
OriginalL'auteur Sileria