En d'autres termes, le pilote MySQL JDBC ne prend pas en charge le codage de caractères avec lequel les caractères ont été initialement soumis. Le pilote MySQL JDBC utilise par défaut le codage par défaut de la plate-forme lors de l'envoi de données de caractères à la base de données, qui peut être par exemple ISO 8859-1. Vous devez lui dire de ne pas le faire en spécifiant le useUnicode
et characterEncoding
paramètres dans l'URL JDBC.
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Lorsque vous utilisez Facelets comme technologie d'affichage, JSF utilise déjà par défaut UTF-8 lorsqu'il s'agit de rendre le contenu HTML et de traiter les valeurs de paramètre soumises. Donc, au moins, le problème n'est pas là.
Voir aussi :
- Unicode - Comment obtenir le caractères, n'est-ce pas ? - Bases de données
- Manuel MySQL Connector/J - 19.3.4.4. Utilisation des jeux de caractères et d'Unicode