Essayez de comprendre ce que les chaînes qui sont affichées mal ont en commun - comme dans ce qui est leur source commune - ils proviennent d'un autre fichier texte/base de données/tables - qui devrait vous donner quelques indications où est la source du problème. PHP ne convertit aucun texte automatiquement alors regardez où il se trouve à l'origine.
Si vous pouvez identifier plus précisément où le texte commence à être déformé, nous pouvons vous aider à mieux.
Certaines choses que vous pouvez étudier en fonction de mon expérience personnelle avec ces types de problèmes:
d'abord assurer votre document .php (le fichier lui-même) est d'un encodage correct. Vous devriez être en mesure de le définir dans votre éditeur de texte ou IDE. Cela peut arriver si vous avez copié des fichiers à partir d'endroits différents. Si vous avez des fichiers non codés en UTF-8, convertissez-les.
Ensuite, assurez-vous que les données que vous récupérez dans ce fichier sont récupérées en utilisant le codage UTF-8. Vous pouvez par exemple avoir du code qui récupère des données d'une base de données où différentes tables ont un encodage différent, ou le texte est codé différemment, vérifiez cela pour plus d'informations: https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html (faites-nous savoir si vous utilisez une base de données différente comme Postgres). Vous pouvez essayer d'imprimer la chaîne provenant d'une base de données juste après qu'elle soit retournée - si elle est correcte mais qu'elle est mal affichée sur la page, il est évident que la mise en forme est mauvaise et que la base de données est correcte. Troisièmement, le texte enregistré dans vos tables correctement configurées en utf-8 peut être enregistré avec un mauvais encodage - vous devrez peut-être le corriger directement ou vérifier le code qui sauvegarde dans la base de données.
Le serveur de base de données pourrait également être configuré pour servir des résultats dans un codage différent et vous pourriez avoir besoin de le configurer correctement: Change MySQL default character set to UTF-8 in my.cnf?
Une autre option est pour vous de rechercher toutes les fonctions qui traitent de la conversion des encodages comme http://php.net/manual/en/function.utf8-encode.php - il se peut que quelque chose de ce genre se produise inutilement et cela est fait pour un texte qui est déjà dans utf-8, ou qui est dans un encodage différent et vous avez besoin d'une autre fonction.
Utilisez ceci et faites-moi savoir –
@AnandPandey merci, mais cela ne fonctionne toujours pas. – Lolo
Dans index.php, définissez ceci: ini_set ('default_charset', 'utf-8') –