Ce n'est pas une pure question java et peut également être lié à HTMLProblème encodage java-> xls
J'ai écrit un servlet java qui interroge une table de base de données et affiche le résultat comme une table html. L'utilisateur peut aussi demander à recevoir le résultat sous la forme sur une feuille Excel. Je crée la feuille Excel en imprimant la même table html, mais avec le type de contenu "application/vnd.ms-excel". Le fichier Excel est bien créé. Le problème est que les tables peuvent contenir des données non anglaises, donc je veux d'utiliser un encodage UTF-8.
PrintWriter out = response.getWriter();
response.setContentType("application/vnd.ms-excel:ISO-8859-1");
//response.setContentType("application/vnd.ms-excel:UTF-8");
response.setHeader("cache-control", "no-cache");
response.setHeader("Content-Disposition", "attachment; filename=file.xls");
out.print(src);
out.flush();
Aussi j'essayé de convertir en octets de chaîne
byte[] arrByte = src.getBytes("ISO-8859-1");
String result = new String(arrByte, "UTF-8");
Mais je reçois toujours des ordures, les caractères non-anglais apparaissent comme des déchets (AEIOU) Que puis-je faire ?. MISE À JOUR: si j'ouvre le fichier Excel dans le bloc-notes + + le type d'encodage de fichier est "UTF-8 sans nomenclature", si je change l'encodage en "UTF-8" puis j'ouvre le fichier dans Excel , les caractères "áéíóú" semblent bons.
Etes-vous en train d'envoyer un fichier CSV ou XLS? Si vous essayez de générer CVS, utilisez: response.setContentType ("text/csv; charset = CP1252"); – Eduardo