Des problèmes de lecture/écriture des données UTF-8 dans MySQL à partir de Java à l'aide de connecteur JDBC 5.1

J'ai un scénario avec deux bases de données MySQL (en UTF-8), un code Java (un Service du Minuteur) permettant de synchroniser deux bases de données (lecture de la forme première de l'écriture/mise à jour à la seconde) et une application Web qui permet de modifier les données chargées dans la deuxième base de données.

Tous les accès base de données est faite à l'aide de IBATIS (mais je découvre que j'ai le même problème à l'aide de JDBC, PreparedStatements et ResultSets)

Lors de mon code java lit les données à partir de la première base de données, j'obtiens des caractères comme 'ó' quand vraiment il doit être 'ó'. Ces données sont wroten sans modifications à la deuxième base de données.

Plus tard, quand je vois les données chargées dans mon application web, je vois le extrange caractère malgré la <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />.

Si je décoder les données à l'aide de ...

new String(data.getBytes("UTF-8"));

... Je visualise bien le caractère (-). Mais je ne peux pas utiliser cette solution comme une règle générale, car quand je modifie des données à l'aide de l'application web de formulaire, les données ne sont pas mis à jour en UTF-8 dans mon deuxième base de données (en dépit de la base de données est en UTF-8 et ma chaîne de connexion est à l'aide de characterEncoding, characterSetResults et useUnicode paramètres).

De mon code Java-je obtenir de la Base de données de paramètres:

character_set_client-->utf8 
character_set_connection-->utf8 
character_set_database-->utf8 
character_set_filesystem-->binary 
character_set_results-->utf8 
character_set_server-->latin1 
character_set_system-->utf8 
character_sets_dir-->/usr/local/mysql51/share/mysql/charsets/ 

la character_set_server paramètre ne peut pas être changé et je ne sais pas ce que je fais de mal!!

Comment puis-je lire des données UTF-8 à partir de MySQL à l'aide de connecteur JDBC (mysql-connector-java-5.1.5-bin.jar)?

Est le problème avec la lecture des données à partir de la première base de données ou de l'écriture à la deuxième base de données?

OriginalL'auteur | 2009-04-08