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%';
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 | +--------------------------+--------------------+
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
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;
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!