Maison >base de données >tutoriel mysql >Comment écrire des chaînes UTF-8 dans MySQL à l'aide de JDBC sans problèmes de codage de caractères ?

Comment écrire des chaînes UTF-8 dans MySQL à l'aide de JDBC sans problèmes de codage de caractères ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 13:59:02913parcourir

How to Write UTF-8 Strings into MySQL Using JDBC Without Character Encoding Issues?

Comment écrire correctement des chaînes UTF-8 dans MySQL via l'interface JDBC

La configuration MySQL est cruciale pour gérer correctement l'encodage des caractères UTF-8. Assurez-vous que le serveur et le client MySQL sont configurés correctement pour éviter toute confusion de caractères.

Assurer une configuration correcte

Pour vérifier votre configuration MySQL, exécutez ces commandes :

show variables like 'character%';
show variables like 'collation%';

Modifications de configuration

Pour les versions MySQL 5.1.nn et ultérieures (y compris 5.5.29) :

[mysqld]
character-set-server = utf8
character-set-filesystem = utf8

Pour les versions MySQL 5.0.nn et plus ancien :

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
default-character-set=utf8
character-set-server=utf8

Connexion à MySQL avec Java

Établissez une connexion à MySQL dans votre code Java à l'aide du pilote JDBC et en spécifiant explicitement l'encodage des caractères :

<code class="java">con = DriverManager.getConnection("jdbc:mysql://localhost:3306/myDatabase?useUnicode=true&amp;characterEncoding=UTF-8","user","passwd");</code>

Conseils supplémentaires

  • Utilisez le codage UTF-8 dans tout votre programme, y compris les requêtes de base de données, les ensembles de résultats et les chaînes littérales.
  • Pensez à utiliser une bibliothèque wrapper JDBC qui gère automatiquement le codage des caractères, telle que Spring JDBC.
  • Vérifiez que les tables et les colonnes de la base de données sont créées avec le jeu de caractères et le classement corrects.
  • Dans votre cas spécifique , la suppression du paramètre de jeu de caractères explicite (query = "set Character Set utf8";) aurait pu résoudre le problème car cela aurait pu provoquer un conflit.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn