Aller au contenu
Ludicweb » Informatique » Pourquoi et comment passer votre base de données WordPress en utf8mb4 (le vrai UTF-8) ?

Pourquoi et comment passer votre base de données WordPress en utf8mb4 (le vrai UTF-8) ?

    Vous avez déjà vu ce message d’erreur en insérant un émoji sur votre site WordPress ? Ou bien certains caractères spéciaux s’affichent mal ? Il est peut-être temps de mettre à jour l’encodage de votre base de données.

    Dans cet article, je vous explique pourquoi passer votre base en utf8mb4 est indispensable aujourd’hui, et comment faire la transition sans douleur.

    🧠 Petit rappel : utf8, utf8mb3, utf8mb4… on s’y perd un peu non ?

    C’est vrai, c’est technique. Alors allons droit au but.

    • utf8mb3 (souvent noté simplement utf8) : c’est l’ancien encodage utilisé par MySQL. Il ne gère pas les caractères à 4 octets, comme beaucoup d’émojis, ou certains caractères asiatiques ou anciens.
    • utf8mb4 : c’est le vrai UTF-8, qui prend en charge l’intégralité de l’Unicode. C’est ce qu’il faut utiliser aujourd’hui.

    👉 WordPress recommande utf8mb4 depuis des années. Si vous avez installé votre site il y a longtemps ou migré plusieurs fois, il est probable que votre base soit encore en utf8mb3.

    🔍 Pourquoi changer ?

    Voici quelques bonnes raisons de faire cette mise à jour :

    1. Support complet des émojis 😃
    2. Moins de bugs avec les caractères spéciaux (comme ç, ñ, €, 漢字…)
    3. Compatibilité avec les plugins modernes
    4. Préparation aux futures versions de MySQL et WordPress

    Et puis soyons honnêtes : vous avez déjà copié-collé un texte avec un émoji dans WordPress, cliqué sur “Mettre à jour”… et vu l’erreur “impossible de mettre à jour la base de données” ? Voilà pourquoi.

    🛠️ Comment faire la conversion en toute sécurité

    🛑 Avant toute chose, sauvegardez votre base de données. Oui, vraiment. Faites une exportation via phpMyAdmin, un plugin, ou WP-CLI. On ne rigole pas avec ça.

    Étape 1 : convertir la base

    Dans votre outil de gestion (phpMyAdmin, Adminer, ou via un client MySQL), lancez la commande suivante :

    ALTER DATABASE nom_de_votre_base
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;

    Étape 2 : convertir chaque table

    Ensuite, pour chaque table (vous pouvez les lister via SHOW TABLES;), exécutez :

    ALTER TABLE nom_de_table
    CONVERT TO CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;

    💡 Vous pouvez automatiser ça avec un script ou un outil comme HeidiSQL ou DBeaver.

    👉 à lire aussi :  Écran incurvé ou écran plat : Notre guide détaillé pour choisir

    🧩 Collation : laquelle choisir ?

    Si vous ne savez pas laquelle prendre, utilisez :

    • utf8mb4_unicode_ci : bon choix par défaut, compatible et stable.
    • utf8mb4_0900_ai_ci : plus récent (MySQL 8+), mais moins universel.

    🧪 Besoin de tester d’abord ?

    Pas de souci. Voici une astuce :

    1. Créez une copie de votre base actuelle.
    2. Appliquez les modifications sur cette copie.
    3. Connectez un site de test à cette base (via wp-config.php) et vérifiez que tout fonctionne.

    ⚠️ Attention à ces points techniques

    • Les colonnes VARCHAR très longues peuvent poser problème : avec utf8mb4, chaque caractère peut prendre 4 octets.
    • Les clés UNIQUE ou INDEX peuvent être impactées si elles dépassent la taille limite avec le nouvel encodage.
    • Certains plugins très anciens peuvent ne pas aimer le changement (mais il est temps de les remplacer 😉).

    ✅ Et pour WordPress ?

    Une fois la base passée en utf8mb4, WordPress va en profiter automatiquement.

    Mais si vous voulez forcer les futures installations à utiliser le bon encodage :

    • Vérifiez que votre version de MySQL est au moins 5.5.3.
    • Vérifiez que votre hébergeur prend bien en charge utf8mb4.
    • Ajoutez dans wp-config.php :
    define('DB_CHARSET', 'utf8mb4');
    define('DB_COLLATE', 'utf8mb4_unicode_ci');

    🔚 Conclusion

    Changer l’encodage de votre base WordPress vers utf8mb4, c’est comme passer de la télé en noir et blanc à la 4K. Vous ne verrez peut-être pas la différence tout de suite, mais vous éviterez bien des bugs, et votre site sera plus robuste, plus propre, et prêt pour l’avenir.

    Et puis avouez : pouvoir insérer des émojis sans tout casser, c’est quand même cool 🧑‍💻🔥