Problème encodage en PHP

Un des problèmes majeurs dans le développement d’application ce sont les accents. Ces maudits caractères sont vraiment à l’origine de problème à tous les niveaux. Export/ Import d’un dump de base de données, affichage des données sur un formulaire, requête ajax…

Il n’est pas rare de se retrouver avec des caractères ésotériques comme « Généré î », « � » .
Je me suis enfin penché sur le problème et voici quelques solutions qui vous dépanneront surement un jour:
– Edition de fichiers: utilisez un éditeur comme Notepad ++ permettant de choisir l’encodage de fichier, et sélectionnez UTF-8 (sans bom). Le bom étant un caractère  qui se rajoute en tout début de fichier (invisible par les éditeurs comme le bloc notes) et qui peuvent invalider votre php car il se situe avec les headers.
– Fichier PHP/HTML: Pensez à ajouterafin de spécifier l’encodage utilisée. Pensez également à rajouter le pour vous éviter aussi d’autres erreurs sur les css.
– Pour le serveur web: parfois il faut modifier le httpd.conf (ajouter AddDefaultCharset UTF-8) , parfois il faut modifier l’entête http en fonction du langage. En php, ajouter header(‘Content-type: text/html; charset=UTF-8’)
– Récupérer un fichier mal encodé issu d’un dump mysql: avant de l’importer dans votre base, essayez de le rééncoder via le logiciel Charco (UTF-8 vers ISOLatin1) .
– Dans Eclipse: au démarrage d’un projet, assurez vous d’avoir choisi UTF-8 avant d’enregistrer le moindre fichier. Si vous reprenez un projet, il faut alors vérifier au préalable le mode d’encodage. A noter que le fait de modifier en cours de route l’encodage d’un projet peut vous pourrir vos fichiers, il faut donc mieux tout supprimer, et tout réimporter dans un projet qui comporte directement le bon encodage.

Enfin, si vous souhaitez d’autres informations, consultez cet article assez bien réalisé:

http://electron-libre.fassnet.net/utf8.php

Laisser un commentaire

*