Les problèmes de jeu de caractères sont souvent très difficiles à comprendre. Fondamentalement, vous devez vous assurer que toutes les conditions suivantes sont vraies :
- La connexion à la base de données utilise UTF-8
- Les tables de la base de données utilisent UTF-8
- Les colonnes individuelles dans les tables DB utilisent UTF-8
- Les données sont en fait stockées correctement dans l'encodage UTF-8 à l'intérieur de la base de données (ce n'est souvent pas le cas si vous avez importé à partir de mauvaises sources ou modifié les classements de table ou de colonne)
- La page Web demande UTF-8
- Apache est serveur UTF-8
Voici un bon tutoriel pour gérer cette liste, du début à la fin :http:/ /www.bluebox.net/news/2009/07/mysql_encoding/
Il semble que votre problème soit spécifiquement lié au fait que vous avez des caractères à double codage (ou à triple codage), probablement en raison de la modification des jeux de caractères ou de l'importation de données déjà codées avec le mauvais jeu de caractères. Il y a toute une section sur la résolution de ce problème dans le didacticiel ci-dessus.