Si votre site affiche des points d’interrogation en lieu et place des caractères non anglais, il est fort probable que l’encodage des caractères de votre base de données ne soit pas UTF-8.

Si vous utilisez PHPMyAdmin, la structure de votre tableau wp_posts devrait ressembler à :

wp_posts vu depuis PHPMyAdmin

Si vous voyez une valeur différente pour le classement, cela signifie que l’encodage des caractères est erroné. Cela entraînera un affichage incorrect du texte car le navigateur ne saura pas comment afficher les caractères qui ne sont pas en anglais.

Il existe une solution simple.

Il vous suffit d’exécuter les instructions ALTER qui passeront en revue vos données et les modifieront de leur codage actuel en codage UTF-8. Pour le faire de la manière la plus simple et la plus efficace possible, utilisez le plug-in de conversion de base de données de WP en UTF-8 Convert WP Database to UTF-8. Ce plug-in exécute les instructions SQL suivantes :

ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
ALTER TABLE $table CHANGE $field_name $field_name $field_type CHARACTER SET utf8 COLLATE utf8_bin

Comme vous pouvez l’imaginer, c’est une très bonne idée d’effectuer une sauvegarde votre base de données avant de faire cela.

Enfin, pour vous assurer que vous ne dérogez pas à l’obligation d’utiliser UTF-8 dans le futur, modifiez votre fichier wp-config.php et définissez correctement le jeu de caractères. Il devrait indiquer :

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');