web-dev-qa-db-fra.com

Problème d'encodage des caractères après le changement de serveur

J'ai récemment déplacé mon site WordPress de DreamHost VPS vers un LinPS VPS exécutant Debian + LEMP. Après avoir relancé le site, j'ai remarqué de nombreux caractères erronés dans les publications. des caractères comme "et - ont été remplacés par du charabia.

Après quelques recherches, il semblait évident que le problème était lié au codage de caractères.

J'ai trouvé un guide qui suggérait de modifier wp-config.php et de commenter les lignes:

define('DB_CHARSET', 'utf8'); et define('DB_COLLATE', '');

Je l'ai fait et cela a résolu le problème, mais je me demande si c'était la meilleure façon de s'y prendre. Merci pour tout conseil.

4
Evan Wondrasek

Après avoir passé toute la journée à travailler là-dessus, j’ai enfin trouvé un guide qui fonctionnait parfaitement:

Avant cela, j’essayais de suivre les informations de @ Rarst, d’exporter la base de données et de la nettoyer manuellement, puis d’essayer le plug-in UTF-8 Sanitize avec une version modifiée à partir d’ici http://www.prelovac.com/vladimir/ultimate-solution- to-weird-utf-character-encoding-problem (qui a plutôt bien fonctionné, mais n'a pas résolu tous les caractères. Et était probablement une idée terrible).

Quoi qu'il en soit, si vous rencontrez ce problème, consultez le premier lien que j'ai posté. La procédure était assez simple et consistait fondamentalement à remplacer SET NAMES latin1 par SET NAMES utf8 après l'exportation de la base de données, puis à s'assurer que la nouvelle base de données nettoyée était explicitement importée au format UTF8.

4
Evan Wondrasek

Voici une autre solution qui a fonctionné pour moi ...

juste commenter DB_CHARSET et DB_COLLATE dans wp-config.php

//define('DB_CHARSET', 'utf8');

//define('DB_COLLATE', '');
2
Sabeer Mohammed

Voir Conversion de jeux de caractères de base de données in Codex. L'article a pour note d'être complètement réécrit à la version 3.0.1, donc les informations doivent être à jour.

1
Rarst

J'ai transféré les fichiers de mon site Web d'un ancien au nouveau répertoire et j'ai pu modifier:

define ('DB_CHARSET', 'utf8mb4');

à

define ('DB_CHARSET', 'utf8');

Et cela a résolu le problème des espaces en diamants noirs.

0
OldWest