Maison >base de données >tutoriel mysql >Pourquoi mes émojis de 4 octets s'affichent-ils sous forme de points d'interrogation dans ma base de données MySQL (utf8mb4) ?

Pourquoi mes émojis de 4 octets s'affichent-ils sous forme de points d'interrogation dans ma base de données MySQL (utf8mb4) ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-09 01:45:13829parcourir

Why Are My 4-Byte Emojis Showing as Question Marks in My MySQL Database (utf8mb4)?

Insertion de caractères UTF-8 MB4 (Emoji) dans MySQL

Problème :

MySQL 5.5.10 est configuré avec le jeu de caractères utf8mb4. Cependant, lors de l'insertion, les emojis représentés par des codes de 4 octets sont convertis en points d'interrogation (« ??? »). Cela se produit avec les emojis iOS5 mais pas avec les emojis iOS4.

Solution :

1. Configuration complète des jeux de caractères :

  • Assurez-vous que les jeux de caractères et les champs de texte par défaut de toutes les tables sont définis sur utf8mb4.
  • Définissez les jeux de caractères client et serveur sur utf8mb4. .

    2. Jeu de caractères de la couche application :

  • Définissez le jeu de caractères de la connexion à la base de données dans la couche application sur utf8mb4.
  • Mettez à jour ou compilez la bibliothèque client de la base de données si nécessaire pour assurer la prise en charge de utf8mb4.

    3. Affichage du client MySQL :

  • Exécutez SET NAMES utf8mb4 avant les requêtes lors de la visualisation des données via le client MySQL. Assurez-vous que la machine peut afficher des émojis.

Considérations supplémentaires :

  • Confirmez que tous les composants de l'application prennent entièrement en charge les caractères Unicode à 4 octets.
  • Envisagez de sauvegarder vos données avant de les convertir en 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!

Déclaration:
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