J'ai un projet dans lequel je récupère des données d'un fichier HTML, les place dans une base de données MySQL, puis les relire et les afficher à l'utilisateur. Chaque fois que le servlet insère quelque chose dans le DB, le signe "£" est inséré en tant que et lorsqu'il est à nouveau lu comme tel.Débogage d'une erreur de jeu de caractères MySQL
L'application est écrite en Java (avec Spring) et JPA avec EclipseLink en tant qu'implémentation JPA.
J'ai réduit le problème à l'insertion dans MySQL car lorsque je vois la table dans la console, le point d'interrogation apparaît.
J'ai configuré MySQL pour utiliser UTF-8 comme encodage standard dans my.cnf
[mysqld]
default-character-set=utf8
Si je lance
SHOW TABLE STATUS;
Je vois que la collecte sur les tables est
utf8_general_ci
ce qui suggère que le jeu de caractères est également UTF-8.
Il y a aussi ceci: mysql> SHOW CREATE DATABASE gate;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| gate | CREATE DATABASE `gate` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
Ainsi, avec Java étant entièrement unicode (?) Et mon DB étant réglé sur UTF-8 où pourrais-je trouver les erreurs de configuration/erreurs?