Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens toujours des erreurs « Valeur de chaîne incorrecte » dans ma base de données MySQL UTF-8 ?

Pourquoi est-ce que j'obtiens toujours des erreurs « Valeur de chaîne incorrecte » dans ma base de données MySQL UTF-8 ?

Patricia Arquette
Libérer: 2024-12-17 11:40:24
original
595 Les gens l'ont consulté

Why Am I Still Getting

Correction des erreurs « Valeur de chaîne incorrecte » dans MySQL

Arrière-plan :

Malgré la configuration du texte colonnes avec un jeu de caractères et un classement UTF-8, certaines adresses e-mail continuent de déclencher des erreurs « Valeur de chaîne incorrecte ». Cet article explore la cause sous-jacente de ces erreurs et propose des solutions.

Cause :

Le message d'erreur suggère que les adresses e-mail concernées contiennent des caractères non pris en charge par le caractère actuel. définir la configuration. Même si UTF-8 est généralement permissif, certaines séquences de caractères peuvent dépasser ses limites.

Solution :

  1. Vérifier l'encodage des données : Assurez-vous que les données sources (adresses e-mail) sont véritablement encodées dans UTF-8.
  2. Vérifier la connexion à la base de données : Après avoir établi une connexion MySQL, exécutez les instructions SQL suivantes :

    SET NAMES 'utf8mb4';
    SET CHARACTER SET utf8mb4;
    Copier après la connexion

    Cela définit le jeu de caractères et classement pour la connexion actuelle à UTF-8 avec quatre octets par caractère (utf8mb4).

  3. Vérifier le jeu de caractères du tableau : Pour les tableaux contenant les adresses e-mail concernées, exécutez la requête suivante pour vérifier le jeu de caractères :

    SELECT
      `tables`.`TABLE_NAME`,
      `collations`.`character_set_name`
    FROM
      `information_schema`.`TABLES` AS `tables`,
      `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
    WHERE
      `tables`.`table_schema` = DATABASE()
      AND `collations`.`collation_name` = `tables`.`table_collation`
      ;
    Copier après la connexion

    Assurez-vous que le jeu de caractères est défini sur utf8mb4.

  4. Vérifier les paramètres de la base de données : Exécutez les instructions MySQL suivantes pour vérifier le jeu de caractères global et les paramètres de classement :

    mysql> show variables like '%colla%';
    mysql> show variables like '%charac%';
    Copier après la connexion

    Assurez-vous que le jeu de caractères et le classement sont définis sur utf8mb4.

Effets du correctif :

L'utilisation de utf8mb4 augmente la plage de caractères prise en charge et élimine les erreurs « Valeur de chaîne incorrecte » pour les adresses e-mail avec caractères étendus. Cela pourrait également améliorer la compatibilité de la base de données avec les données internationales et les futures normes Unicode.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal