J’ai Ă©crit un article contenant des Ă©mojis rĂ©cemment et il Ă©tait impossible de l’enregistrer. Il y avait un message disant « impossible de mettre Ă jour la publication dans la base de donnĂ©es ». A force de supprimer des Ă©lĂ©ments de l’article pour dĂ©terminer ce qui bloquait, j’ai compris que mon site, et celui-ci, ne supportaient pas les Ă©mojis. J’y ai perdu beaucoup de temps đ . Alors je documente la solution pour me permettre de la retrouver si nĂ©cessaire, et pour aider d’autres internautes si nĂ©cessaire.
Pour dĂ©terminer la solution, je me suis appuyĂ©e sur cet excellent article, dont j’ai validĂ© le processus par un bref echange avec Gemini 2.5 Flash.
Un InterClassement trop ancien !

Comme on le voit dans cette copie d’Ă©cran, certaines de mes tables utilisent utf8mb3_general_ci et d’autres utf8mb4_unicode_520_ci. Selon Gemini, « L’interclassement, ou « collation » en anglais, est un ensemble de rĂšgles qui dĂ©finit comment les chaĂźnes de caractĂšres sont triĂ©es et comparĂ©es dans une base de donnĂ©es. Il dĂ©termine l’ordre alphabĂ©tique des caractĂšres, la sensibilitĂ© Ă la casse (majuscules/minuscules) et aux accents, ce qui est crucial pour le tri des rĂ©sultats de recherche ou le filtrage de donnĂ©es. »
Tous les interclassements que jâutilise sont basĂ©s sur UTF-8, encodage bien adaptĂ©. Mais utf8mb3 nâutilise que 3 octets par caractĂšres et ne convient pas pour certains caractĂšres spĂ©ciaux comme les emojis. Et il traite aussi les caractĂšres accentuĂ©s comme sâils ne lâĂ©taient pas, ce qui le rend moins prĂ©cis.
utf8mb4_unicode_ci semble ĂȘtre le standard recommandĂ© actuellement. Il convient Ă une gamme trĂšs large de caractĂšres, y compris les emojis et caractĂšres asiatiques.  Il respecte les rĂšgles de tri dâUnicode, ce qui le rend bien adaptĂ© Ă la plupart des langues. utf8mb4_unicode_520_ci est encore plus rĂ©cent.
Quelles solutions ?
AprĂšs analyse de l’article et consultation de Gemini, j’ai dĂ©cidĂ© de procĂ©der en trois Ă©tapes :
Etape 1 : sauvegarder la base de données
Ca se fait dans l’interface de l’hĂ©bergeur (Infomaniak par exemple) ou avec l’interface phpMyAdmin.
Etape 2 : Modifier wp-config.php
Il vaut mieux en tĂ©lĂ©charger la version actuelle au cas oĂč avant de le modifier. Dans ce fichier je vois :
define('DB_CHARSET', 'utf8');
Je me modifie en :
define('DB_CHARSET', 'utf8mb4');
Et je vois qu’il n’y a pas besoin de changer la ligne
define('DB_COLLATE', '');
Et je sauvegarde le fichier wp-config.php ainsi modifié.
Etape 3 : migrer la base de données
Je vais migrer l’ensemble de la base de donnĂ©es vers utf8mb4_unicode_ci.
- Dans phpMyAdmin, sélectionnez votre base de données.
- Cliquez sur l’onglet « OpĂ©rations » en haut.
- Dans la section « Interclassement », sélectionnez utf8mb4_unicode_ci dans la liste déroulante.
- Cochez la case « Changer l’interclassement de toutes les tables » puis la case « Changer les interclassements de toutes les colonnes de toutes les tables »
- cliquer sur « Exécuter » :

Une fois l’opĂ©ration terminĂ©e, vous verrez un message de succĂšs.
Notez Que  si on clique sur « information schema » ça reste toujours le vieil interclassement ; mais ce schĂ©ma ne sert Ă rien (pour le site lui-mĂȘme). Donc pas de problĂšme !
Et maintenant ?
Je peux mettre autant d’emojis que je veux dans mes articles. Est-ce que c’est mieux ou pas, je ne sais pas !
đ€Șđđ
Commentaires récents