Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi mes Emojis disparaissent-ils dans MySQL ?

DDD
Libérer: 2024-11-06 20:25:02
original
322 Les gens l'ont consulté

Why are my Emojis Disappearing in MySQL?

Encodage des caractères MySQL et stockage des Emoji

Nous avons une application iPhone qui transmet des émoticônes à un backend PHP, qui les insère ensuite dans un MySQL base de données. Cependant, une fois l'insertion réussie, la valeur stockée apparaît vide.

Les insertions de texte uniquement réussissent, mais lorsque des émoticônes sont incluses, seul le texte est inséré. Les suggestions visant à modifier le type de champ en Blog (pour accueillir les données d'image) se sont révélées inadaptées en raison d'insertions occasionnelles de non-émoticônes et de faibles besoins de stockage.

Solution : Compatibilité des jeux de caractères MySQL

Le problème réside dans l'encodage des caractères de MySQL. Les emojis iOS utilisent principalement des points de code dépassant le plan multilingue de base (BMP) de la table Unicode. Par exemple, l'emoji « Visage souriant avec bouche ouverte et yeux souriants » réside dans U 1F604.

Les versions MySQL antérieures à 5.5 ne prennent en charge que UTF-8 pour BMP, limitant le stockage aux caractères sous U FFFF. Par conséquent, MySQL ne peut pas stocker l'emoji U 1F604 ou d'autres "caractères élevés".

Pour résoudre ce problème, utilisez MySQL 5.5 et sélectionnez utf8mb4 (UTF-8 authentique), utf16 ou utf32 comme jeu de caractères de colonne. De plus, assurez-vous que la connexion MySQL entre PHP et la base de données utilise le même jeu de caractères.

Pour les versions MySQL inférieures à 5.5, utilisez le type de colonne BLOB, qui stocke les octets bruts sans tenir compte des « caractères ». Bien que cela permette le stockage des emoji, cela compromet l'efficacité de la recherche et de l'indexation du texte.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!