Maison > base de données > tutoriel mysql > Comment corriger les erreurs « Valeur de chaîne incorrecte » lors de l'insertion de données UTF-8 dans MySQL via JDBC ?

Comment corriger les erreurs « Valeur de chaîne incorrecte » lors de l'insertion de données UTF-8 dans MySQL via JDBC ?

DDD
Libérer: 2024-12-30 11:59:10
original
209 Les gens l'ont consulté

How to Fix

Gestion des valeurs de chaîne incorrectes lors de l'insertion d'UTF-8 dans MySQL via JDBC

Lors de la tentative d'insertion de données UTF-8 dans une base de données MySQL à l'aide JDBC, vous pouvez rencontrer le message d'erreur « Valeur de chaîne incorrecte : 'xF0x90x8Dx83xF0x90...' » Cette erreur se produit souvent lorsque le texte inséré contient des caractères qui ne peuvent pas être représentés dans le jeu de caractères utf8 de MySQL.

Bien que vos paramètres de connexion incluent l'utilisation de l'Unicode ("useUnicode=true") et de l'encodage UTF-8 ("characterEncoding =utf-8"), l'encodage utf8 de MySQL ne prend en charge que les caractères Unicode qui peuvent être représentés par 3 octets en UTF-8. Le caractère à l'origine de l'erreur nécessite cependant 4 octets.

Solution :

Pour résoudre ce problème, vous avez deux options :

  • Changez le codage de colonne en utf8mb4 :
    Si votre version de MySQL est 5.5 ou ultérieure, vous peut modifier le codage de la colonne concernée de utf8 à utf8mb4. Cet encodage permet le stockage de caractères qui occupent 4 octets en UTF-8.
  • Modifier la configuration du serveur :
    De plus, vous devrez peut-être définir la propriété du serveur Character_set_server sur utf8mb4 dans votre MySQL. fichier de configuration. Cela garantit que MySQL prend en charge les jeux de caractères UTF-8 sur 4 octets par défaut.

Notez que Connector/J, couramment utilisé pour les connexions JDBC avec MySQL, utilise par défaut Unicode sur 3 octets. Par conséquent, il est recommandé de laisser CharacterEncoding hors de votre chaîne de connexion et de configurer le serveur MySQL avec Character_set_server=utf8mb4 pour permettre à Connector/J de détecter automatiquement le paramètre UTF-8.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal