Bonjour,
le problème que je rencontre est sans doute entre MySql et JDBC.
Je n'ai pas trouvé de réponse sur le forum MySql, malgrés quelques discussions existantes sur des problèmes similaires.
Voici le contexte :
- une application web en java (JSF, classes métier, classes dao d'accès à la base),
- serveur Tomcat 5.5.12
- MySql 4.1.14 (défaut aussi avec version 5),
- pilote JDBC : mysql-connector-java-3.1.12-bin.jar (défaut aussi avec versions plus récentes).
- développement avec Eclipse 3.1.1
Voici le problème :
1) Des textes avec caractères spéciaux du français (é, è, ë,...) sont stockés dans la base.
2) leur affichage dans le mode console de MySql lors de requêtes se fait correctement.
3) et ô rage... : les mêmes carractères ne s'affichent pas correctement (remplacés par ? ou autres carractères plus "ésotériques") dès la sortie du ResultSet (testé dans la console de Eclipse) et à plus forte raison dans les pages HTML générées par des JSP, elles mêmes traitées par le framework JSF.
Note : les caractères spéciaux s'affichent correctement s'ils sont directement mis dans un String de Java.
J'ai déjà cherché dans plusieurs directions (avec l'aide de différents forums), et notamment en réglant les variables charsets de MySql à la création de la base (avant le chargement des données), par l'application avant les requêtes de consultation (données déjà chargées).
Mais là, j'en perd mon latin (ou mon UTF8, je ne sais plus) !!!
Le problème ne viendrait-il pas du pilote JDBC ?
Quelqu'un peut-il confirmer ou non que le problème n'existe pas avec d'autres DB ?
et enfin : Quelqu'un a-t-il une solution ?
Merci d'avance pour votre aide.
Partager