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.
