Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens des erreurs « Chaîne de caractères utf8 non valide » lors de l'enregistrement d'émojis dans ma base de données MySQL utf8mb4 ?

Pourquoi est-ce que j'obtiens des erreurs « Chaîne de caractères utf8 non valide » lors de l'enregistrement d'émojis dans ma base de données MySQL utf8mb4 ?

DDD
Libérer: 2024-12-09 12:50:14
original
723 Les gens l'ont consulté

Why Am I Getting

Enregistrement des émojis dans la base de données MySQL utf8mb4 : dépannage des erreurs de caractères invalides

Lors de la tentative de stockage de noms contenant des émojis dans une base de données MySQL, des erreurs telles que " Une chaîne de caractères utf8 non valide peut survenir malgré une configuration correcte. Un problème potentiel réside dans les paramètres de jeu de caractères et de classement incohérents.

Pour vérifier la configuration, exécutez la requête suivante :

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
Copier après la connexion

La sortie doit afficher les paramètres suivants pour la base de données en question :

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+
Copier après la connexion

Assurez-vous que les valeurs de Character_set_client, Character_set_connection et Character_set_results sont toutes définies sur utf8mb4. Sinon, ajustez ces paramètres en conséquence.

De plus, vérifiez si le fichier de configuration my.cnf contient des incohérences. Recherchez les paramètres qui spécifient les jeux de caractères et les classements et assurez-vous qu'ils sont cohérents avec la configuration de la base de données. Par exemple, vérifiez que ces lignes sont présentes :

character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Copier après la connexion

Si ces paramètres ne sont pas présents ou incorrects, modifiez-les si nécessaire et redémarrez le service MySQL.

Enfin, pensez à exécuter ce qui suit requête pour définir le jeu de caractères et le classement pour la connexion actuelle :

SET NAMES utf8mb4;
Copier après la connexion

Cela garantira que les trois variables du jeu de caractères sont définies correctement.

En suivant ces étapes, vous pouvez résoudre le problème des erreurs de caractères UTF-8 non valides lors de l'enregistrement des emojis dans une base de données MySQL avec la configuration utf8mb4.

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