unicode

Tomcat et sa gestion des URI

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

Pour plus d'informations au sujet des URI voir la RFC correspondante.