2009-04-03 9 views
2

J'ai eu quelques problèmes avec la lecture et l'écriture de UTF-8 à partir de servlets sur Tomcat 6/Linux. La requête et la réponse étaient utf-8, le navigateur était utf-8, URIEncoding était défini dans server.xml sur les connecteurs et les hôtes. En bref, chaque chose connue pour moi dans le code lui-même, et la configuration du serveur était utf-8.UTF-8 et Servlets sur Tomcat/Linux

Lors de la lecture de la requête, j'ai dû prendre un tableau d'octets à partir de String, puis convertir ce tableau d'octets en String à nouveau. Lors de l'écriture de la requête, j'ai dû écrire des octets, pas de la chaîne elle-même, afin d'obtenir une réponse correcte (sinon, j'obtiendrais une exception disant qu'un caractère non ASCII n'est pas valide ISO 8859-1).

+0

Je trouve la réponse que vous pouvez le voir ici. http://isurueng.blogspot.com/2011/12/utf-8-and-jspservlets-on-tomcatlinux.html – Isuru

Répondre

0

La solution consistait à définir la variable d'environnement LANG sur (dans mon cas) en_US.UTF-8, ou probablement tout autre environnement local UTF-8. Je suis toujours intrigué par le fait que je ne pouvais rien faire du code pour que mon servlet se comporte correctement. S'il n'y a pas moyen de le faire, c'est un bug de mon point de vue.