Maison > base de données > tutoriel mysql > Comment résoudre l'erreur « Valeur de chaîne incorrecte » de MySQL avec des caractères non latins ?

Comment résoudre l'erreur « Valeur de chaîne incorrecte » de MySQL avec des caractères non latins ?

DDD
Libérer: 2024-12-14 20:55:17
original
702 Les gens l'ont consulté

How to Solve MySQL's

Résolution de l'erreur « Valeur de chaîne incorrecte » dans MySQL

L'erreur « Valeur de chaîne incorrecte » se produit lorsque MySQL rencontre des données qui n'adhèrent pas au codage de caractères spécifié. Dans le contexte fourni, cette erreur est observée avec les e-mails contenant des caractères non latins malgré la définition du jeu de caractères de la colonne sur utf8 et du classement sur utf8_general_ci.

Causes et solutions :

  1. Couverture insuffisante du jeu de caractères : Le jeu de caractères utf8 utilisé dans MySQL avant la version 5.5.3 ne prenait en charge qu'un sous-ensemble d'Unicode appelé Unicode Plane 1, qui comprend des caractères latins, des lettres grecques et certains symboles. Dans les versions récentes de MySQL, il faut utiliser utf8mb4, qui prend en charge la grande majorité des caractères Unicode. La conversion des colonnes de la base de données et de la table en utf8mb4 devrait résoudre le problème.
ALTER DATABASE mydatabase CHARACTER SET = utf8mb4;
ALTER TABLE mytable MODIFY column_name TEXT CHARACTER SET utf8mb4;
Copier après la connexion
  1. Encodage incorrect des données : Assurez-vous que les e-mails insérés sont codés en utf8. Vérifiez la source des e-mails et vérifiez qu'ils utilisent ce codage de caractères. S'ils ne sont pas encodés en utf8, convertissez-les avant de les insérer dans la base de données.
  2. Incompatibilité d'encodage de connexion : Confirmez que la connexion à la base de données est également définie pour utiliser l'encodage utf8mb4. Cela peut être fait en exécutant les commandes suivantes après avoir établi une connexion :
SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;
Copier après la connexion

Effets probables d'un correctif :

Correction de la "valeur de chaîne incorrecte " L'erreur permettra à la base de données de stocker et de récupérer correctement les caractères non latins dans les emails. Cela éliminera la perte de données et garantira que les e-mails pourront être traités sans erreurs. Cependant, il est important de noter que la conversion en utf8mb4 peut affecter les opérations de comparaison dans la base de données. Les classements comme utf8_general_ci ne sont pas sensibles à la casse, mais avec utf8mb4, ils le deviennent pour les caractères spéciaux comme le « ß » allemand.

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