IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

juju26

Enregistrer des emojis dans WebDev 2025 (PHP/MySQL)

Noter ce billet
par , 09/01/2026 à 20h55 (1322 Affichages)
Sur WebDev 2025 (dongle ) en génération PHP (Chaines Unicode) et MySQL:

  • Les emojis ne s’enregistrent pas correctement en base.
  • Si vous essayez, ils apparaissent sous la forme ???.


Nom : img.png
Affichages : 846
Taille : 1,86 Mo

Pourquoi ?
WebDev, lorsqu’il génère du PHP en Unicode, configure la connexion MySQL par défaut en utf8.
L’utf8 standard de MySQL ne supporte que les caractères Unicode sur 3 octets maximum.
Les emojis et certains symboles récents utilisent 4 octets.
⚠️ Résultat : MySQL ne peut pas les stocker correctement et les remplace par ???.

En résumé : utf8 ≠ utf8mb4, et les emojis nécessitent utf8mb4 pour être sauvegardés tels quels.



Solution Encodage en PHP

Transformer les emojis en entités HTML avant l’insertion. Procedure en code natif PHP

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function EncodeEmojisUTF8(string $sTexte): string {
    $sResultat = "";

    // Assurez-vous que mbstring est configuré en UTF-8
    $length = mb_strlen($sTexte, 'UTF-8');

    for ($i = 0; $i < $length; $i++) {
        $sCar = mb_substr($sTexte, $i, 1, 'UTF-8');

        // Obtenir le code Unicode du caractère
        $nCode = mb_ord($sCar, 'UTF-8');

        // Emoji ou caractère sur 4 octets Unicode
        if ($nCode > 0xFFFF) {
            $sResultat .= "&#x" . strtoupper(dechex($nCode)) . ";";
        } else {
            $sResultat .= $sCar;
        }
    }

    return $sResultat;
}
✅ Avantage : fonctionne même avec une base utf8.
⚠️ Inconvénient : le texte contient maintenant des entités HTML au lieu des emojis bruts.


Il est également possible de résoudre le problème en ajustant la configuration de la connexion MySQL pour utiliser un encodage compatible avec les emojis.
Cette approche est plus avancée, dépend fortement du contexte et n’est pas détaillée dans ce mini‑tuto.
Pour ceux qui souhaitent en discuter ou partager leur expérience, vous pouvez consulter le blog de Developpez.com.

Envoyer le billet « Enregistrer des emojis dans WebDev 2025 (PHP/MySQL) » dans le blog Viadeo Envoyer le billet « Enregistrer des emojis dans WebDev 2025 (PHP/MySQL) » dans le blog Twitter Envoyer le billet « Enregistrer des emojis dans WebDev 2025 (PHP/MySQL) » dans le blog Google Envoyer le billet « Enregistrer des emojis dans WebDev 2025 (PHP/MySQL) » dans le blog Facebook Envoyer le billet « Enregistrer des emojis dans WebDev 2025 (PHP/MySQL) » dans le blog Digg Envoyer le billet « Enregistrer des emojis dans WebDev 2025 (PHP/MySQL) » dans le blog Delicious Envoyer le billet « Enregistrer des emojis dans WebDev 2025 (PHP/MySQL) » dans le blog MySpace Envoyer le billet « Enregistrer des emojis dans WebDev 2025 (PHP/MySQL) » dans le blog Yahoo

Catégories
PHP , Développement Web

Commentaires