flankerLe 17/12/2007 à 11:08
Non, le problème, c'est qu'Apache (le serveur Web qui envoie tes données au navigateur) peut très bien ne pas tenir compte de des mentions que tu donnes.
En gros, lors de la communication Apache > navigateur, Apache envoie d'abord le header (qui contient des informations du style:
- durée de validité de la page
- le code d'erreur : si tout se passe bien, c'est 200, si la page n'existe pas c'est 404, si tu n'as pas le droit de voir la page c'est 401, etc...
- l'encodage (utf-8, iso-8859-1, etc...) (on peut agir sur ça en php, qui va modifier le header avec header('Content-Type: text/html; charset=UTF-8');, c'est d'ailleurs pour ça qu'il faut que ça soit la première ligne : le header est envoyé avant le contenu de la page web)
... )
Ensuite, il y a le contenu de la page lui même, qui est un fichier XML (là encore on peut spécifier l'encodage avec <?xml version="1.0" encoding="UTF-8"?>), qui contient des données XHTML (et là aussi on précise l'encodage avec <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />)
Manque de pot, si dans le header c'est marqué iso-8859-1, le navigateur ne va prendre en compte les deux autres infos, même si elles disent le contraire... (oui, c'est n'importe quoi, mais bon...). Conclusion, il faut modifier le header, et c'est le rôle de mes lignes php ^^