Qui ne s'est jamais arraché les cheveux à essayer de résoudre un problème d'encodage de caractère?
Tiens j'en viens tout juste de faire les frais
Contexte
- J2EE, Liferay, Struts
- Tomcat sur les postes des développeurs (allez faire tourner Liferay sous Weblogic et vous comprendrez pourquoi...)
- Weblogic en production
Symptômes
- impossible de récupérér correctement une chaîne UTF-8 passée en valeur de paramètre dans une URI sans transcodage si cette chaîne contient des caractères non US-ASCII (éàè...). Mieux encore cela ne se produit que sous Tomcat.
Pourquoi?
- par défaut Tomcat transcode les paramètres d'URI vers l'ISO-8859-1.
Solution
- user des paramètres URIEncoding et useBodyEncodingForURI - voir la configuration connecteur HTTP de Tomcat - pour forcer, par configuration l'encodage utilisé dans les URI.
Pour plus d'informations au sujet des URI voir la RFC correspondante.

Comments
Et oui c'est un casse tête
Et oui c'est un casse tête ! ...
Moi j'ai eu les mêmes souscis avec du JSF avec Dojo et des Webservices ... Et avec des batch shell, avec la base Oracle ....
Le tout sur du Tomcat et du Weblogic sur des machines Solaris.
.. Bref un gros merdier ...
@+
Ludo
C'est sûr. On a beau faire
C'est sûr.
On a beau faire du Java, se dire qu'on est en UTF-8, y'a pas moyen on aura tjrs des ennuis un jour ou l'autre :/
Post new comment