IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Linux/Tomcat/Firebird : Encodage caractères


Sujet :

Tomcat et TomEE Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Linux/Tomcat/Firebird : Encodage caractères
    Bonjour !

    Je vous soumets le problème suivant car j'ai passé des heures la dessus, et je ne trouve pas la solution. J'ai une application Web (développée avec Netbeans) et qui tourne sur Tomcat 5.5 sur SuSE Linux 9.3. La base relationnelle est un Firebird 1.5 également sous Linux.

    Le problème vient de l'encodage / décodage des caractères saisis sur un formulaire du navigateur. Voici les résultats :

    Saisie dans browser : Raphaël
    Valeur dans Firebird : Raphaël
    Valeur affichée en retour sur le browser : Raphaël

    On voit bien qu'il y a un encodage en UTF-8 qui se produit avant l'écriture dans la base, et un décodage ensuite par le navigateur. Toutes mes pages indiquent bien le pageEncoding="UTF-8" dans l'entête HTTP et le charset="utf-8" dans le <meta>.

    Mon problème est que je souhaiterais ne pas stocker la valeur en UTF-8 dans la base Firebird car j'ai d'autres applications client/serveur qui accèdent à la base et qui ne gèrent pas l'UTF-8 et où je dois avoir une cohérence des accents.

    Si quelqu'un a de l'expérience dans ce domaine, vos commentaires seraient les bienvenus. J'ai suivi pas mal de tutoriaux, et j'ai essayé de changer les paramètres de Tomcat dans le server.xml (URIEncoding) mais sans succès.

    Merci d'avance,
    Raphael

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Problème résolu
    J'ai trouvé le problème, je poste ici au cas où d'autres ont le problème :

    Il s'agissait d'une différence dans la propriété file.encoding par défaut qui diffère entre la JVM Linux et celle de Windows. Par défaut sous Windows, la JVM utilise un file.encoding de ISO-8859-1 alors que sous Linux la JVM utilise par défaut UTF-8.

    La solution de mon problème a donc été de spécifier le paramètre -Dfile.encoding=ISO-8859-1 au niveau du lancement de Tomcat. Je n'avais pas pensé à cela au début car je ne pensais pas que le file.encoding de la JVM jouait au niveau de l'accès aux bases de données vu que je passe par le pilote Jaybird JDBC.

    Finalement nous avons fini par laisser la valeur par défaut de la JVM et de changer le file encoding au niveau de l'application en utilisant :

    System.setProperty("file.encoding", "ISO-8859-1");

    Raphael

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème encodage caractères sépeciaux - XML - Java - Tomcat
    Par commande dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 19/08/2009, 12h31
  2. Réponses: 0
    Dernier message: 26/08/2008, 15h12
  3. Réponses: 1
    Dernier message: 02/02/2006, 23h12
  4. Encodage caractères => Uniformisation
    Par jinh dans le forum C
    Réponses: 4
    Dernier message: 18/01/2006, 15h41
  5. [JSP] Encodage caractère
    Par tscoops dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 08/02/2005, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo