Dans la vie quotidienne, il arrive souvent que le contenu envoyé par les utilisateurs contienne des expressions emoji s'il n'est pas traité, il sera tronqué lors de son affichage. Par conséquent, cet article présente plusieurs méthodes de traitement impliquant des expressions emoji dans le développement PHP WeChat. J'espère que cela aide tout le monde.
Contexte
Lorsque vous développez WeChat, vous constaterez que le stockage des surnoms WeChat est essentiel.
Mais ce foutu WeChat prend en charge les expressions emoji comme surnoms, ce qui est un peu pénible.
Généralement, lors de la conception des tables Mysql, le jeu de caractères UTF8 est utilisé. Déplacez le champ du pseudo avec emoji à l'intérieur de insert
et il disparaît, et le champ entier devient une chaîne vide. Que se passe-t-il?
Il s'avère que le jeu de caractères utf8 de Mysql est de 3 octets, tandis que celui des emoji est de 4 octets, donc le surnom complet ne peut pas être stocké. Ce qu'il faut faire? Permettez-moi de vous présenter plusieurs méthodes
Solutions
1 Utilisez le jeu de caractères utf8mb4
Si votre version MySQL>=5.5.3
, vous pouvez directement mettre à niveau utf8
vers le jeu de caractères utf8mb4
. Cet encodage utf8 à 4 octets est parfaitement compatible avec l'ancien jeu de caractères utf8 à 3 octets et peut stocker directement des expressions emoji. Quant à la perte de performances causée par l'augmentation du nombre d'octets, j'ai lu quelques critiques et elle est presque négligeable
2 Utilisez l'encodage base64
Si vous ne pouvez pas utiliser utf8mb4. pour une raison quelconque, vous pouvez également utiliser pour enregistrer le pays. base64
L'utilisation de fonctions telles que
pour encoder les emoji peut être directement stockée dans l'ensemble d'octets utf8 dans la table de données, il suffit de les décoder lors de leur suppression. base64_encode
3. Débarrassez-vous des expressions emoji
Les expressions emoji sont une chose gênante Même si vous pouvez les stocker, elles peuvent ne pas être parfaites. Sur des plateformes autres qu'iOS, comme PC ou Android. Si vous devez afficher des emoji, vous devez préparer de nombreuses images emoji et utiliser une bibliothèque frontale tierce. Même ainsi, il peut être impossible de les afficher car les images emoji ne sont pas suffisamment complètes. Dans la plupart des scénarios professionnels, les emoji ne sont pas nécessaires. Nous pouvons envisager de nous en débarrasser de manière appropriée et économiser divers coûts Après de nombreuses recherches sur Google, nous avons finalement trouvé un code fiable et utilisable :// 过滤掉emoji表情 function filterEmoji($str) { $str = preg_replace_callback( '/./u', function (array $match) { return strlen($match[0]) >= 4 ? '' : $match[0]; }, $str); return $str; }
Recommandations associées :
Comment générer un dictionnaire de données MySQL en php
php implémente la fonction de statistiques de mots
Comment PHP gère les données binaires
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!