Je développe une application de connexion à une base de données en Java. Le client a SQL Server et j'ai essayé la version SQLExpress de Microsoft tant que nous ne voulons pas acheter une licence pour le temps de développement. Malheureusement, SQL Server Express n'autorise pas l'accès au réseau, donc nous ne pouvons pas travailler sur le réseau sur la même base de données et devons installer le serveur SQL Server Express sur chaque client développeur.Java passer de MS SQL à MySQL - Jeux de caractères
Aujourd'hui, j'ai décidé de passer à MySQL pendant le processus de développement. J'ai créé une base de données MySQL avec le jeu de caractères UTF8 et exporté les données dans des fichiers CSV que j'ai également convertis en UTF8 et les ai importés. Je me connecte avec Java avec le pilote JDBC et maintenant obtenu un comportement bizarre pendant l'exécution. Les résultats diffèrent complètement du client se connectant à SQL Server. J'ai écrit le SQL à Java colle code myselft et n'utilise pas un cadre comme Hibernate ou JPA. Je suppose que le problème a à voir avec le codage de caractères. Les fichiers de code source ne sont pas encodés avec CP1252 - parce que je viens de commencer à développer dans Eclipse sous Windows et j'ai confiance dans les paramètres par défaut. J'interroge la base de données en obtenant un objet ResultSet et ensuite lire les données avec les méthodes getter fournies par le ResultSet. Je ne fais aucune conversion de caractères pendant la récupération de données.
Le problème est maintenant que je n'obtiens pas de sortie cryptique pas bien encodée mais à la place NullPointerExceptions et gestion de données bizarre. Par exemple: J'ai écrit une méthode qui compare les Jobs (un objet représentant un Job avec un nom, un identifiant, une cargaison et tout ça). Les résultats au cours de l'exécution diffèrent. Certains Jobs sont égaux sur SQL Server et d'autres sur MySQL mais le résultat SQL Server est correct.
Je viens de voir les propriétés de la base de données et j'ai vu que le codage de caractères de SQL Server est en ISO-Latin-1.
Merci pour votre aide et salutations de Cologne, Marco
Veuillez ajouter les parties pertinentes de la pile. –