Ces derniers mois, j'ai fait beaucoup de développement WeChat, et stocker les 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éral Mysql Lors de la conception de tables, le jeu de caractères UTF8 est utilisé. Insérez le champ de surnom avec emoji et il disparaîtra. Le champ entier deviendra 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
1. Utilisez le jeu de caractères utf8mb4
Si votre version de MySQL >=5.5.3, vous pouvez directement mettre à niveau utf8 pour le jeu de caractères utf8mb4.
Cet encodage utf8 sur 4 octets est parfaitement compatible avec l'ancien jeu de caractères utf8 sur 3 octets, et peut stocker directement des expressions emoji, ce qui est la meilleure solution
Quant à j'ai lu quelques critiques et a constaté que la perte de performances causée par l'augmentation du nombre d'octets est presque négligeable
2. Utilisez l'encodage base64
Si vous avez des raisons Si vous ne parvenez pas à utiliser utf8mb4 , vous pouvez également utiliser base64 pour enregistrer le pays.
À l'aide de fonctions telles que base64_encode, l'emoji encodé peut être directement stocké dans la table de données de l'ensemble d'octets utf8. Il suffit de le décoder lors de sa suppression
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 s'afficher parfaitement. 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 toujours y avoir des situations dans lesquelles les images emoji ne peuvent pas être affichées car elles ne sont pas suffisamment complètesDans la plupart des scénarios professionnels, les emojis 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; }
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!