Au début, on avait simplement tout mis en iso-8859-1. Le CMS marchait correctement mais on s'est dit que si on a besoin de rendre le CMS multilingue on va avoir des problèmes à cause de cet encodage. Donc on a décidé de passer à l'utf-8. Donc on fait des recherches et on se rencontre qu'il ne suffit pas de faire passer tout l'affichage de php dans la fonction utf8_encode() et de mettre dans le html <meta http-equiv="content-Type" content="text/html; charset=utf-8" />. Ce serait si simple si ça suffisait.

Ensuite on a des problèmes avec la base de donnée car la bdd reçoit du utf-8 par les formulaires (à cause de l'encodage de la page) et l'enregistre comme de l'iso-8859-1 puis quand php récupère ça et le met en utf-8 avec utf8_encode() ça nous donne de jolis points d'interrogation. on a essayé utf8_decode sur tout ce qui sort de la bdd mais là aussi on a un problème, cette fonction ne marche pas correctement. On s'est dit que c'était peut-être dû à l'encodage de la base de donnée et de son inter-classement donc on a passé toute la base de donnée en utf-8 ce qui n'a pas vraiment été simple.

Le résultat a été le même donc on a voulu passer tout le code php en utf-8. Avec notepad++ ce n'était pas trop dur mais on a préféré passer à pspad qui est un peu diffèrent dans son utilisation mais très pratique pour le php. On a donc enlevé cette fichue fonction utf8_encode() et tous nos fichiers ont été mis en utf-8. On a bien sûr été informé du problème de traitement de chaîne de caractères en php et sql dû à ce changement d'encodage mais nous n'avons pas vraiment besoin de traiter des chaînes de caractères qui comportent autre chose que des caractères d'ASCII de base comme les url.

Finalement ça marche correctement mais il y a un problème avec phpmyadmin. Quand on modifie des données via l'interface de phpmyadmin, avec les formulaires habituels, il encode le résultat dans la bdd en iso-8859-1 ce qui est un peu embêtant car on se retrouve encore avec des points d'interrogations sur notre page. Je cherche un autre système de gestion de base de donnée qui n'a pas ce problème mais je n'ai encore rien trouvé.