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é simplementutf8) : 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 :
- Support complet des émojis 😃
- Moins de bugs avec les caractères spéciaux (comme ç, ñ, €, 漢字…)
- Compatibilité avec les plugins modernes
- 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.
🧩 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 :
- Créez une copie de votre base actuelle.
- Appliquez les modifications sur cette copie.
- Connectez un site de test à cette base (via
wp-config.php) et vérifiez que tout fonctionne.
⚠️ Attention à ces points techniques
- Les colonnes
VARCHARtrès longues peuvent poser problème : avecutf8mb4, chaque caractère peut prendre 4 octets. - Les clés
UNIQUEouINDEXpeuvent ê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 🧑💻🔥

