J'ai plusieurs pages [PHP][1] qui renvoient diverses choses dans des pages [HTML][2] avec le code suivant.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Cependant, lorsque je valide avec le [W3C validator][3], le résultat est le suivant :
Le codage des caractères spécifié dans l'en-tête HTTP (iso-8859-1) est différent de la valeur de l'élément <meta> (utf-8).
Je suis assez novice en PHP, et je me demandais si je pouvais et devais modifier l'en-tête des fichiers PHP pour qu'il corresponde à celui des fichiers HTML.
[1] : http://en.wikipedia.org/wiki/PHP [2] : http://en.wikipedia.org/wiki/HTML [3] : https://en.wikipedia.org/wiki/W3C_Markup_Validation_Service
Utilisez header
pour modifier l'en-tête HTTP :
header('Content-Type: text/html; charset=utf-8');
Notez que vous devez appeler cette fonction avant qu'une quelconque sortie ait été envoyée au client. Sinon, l'en-tête a aussi été envoyé et vous ne pouvez plus le modifier. Vous pouvez le vérifier avec headers_sent
. Voir la page de manuel de header
pour plus d'informations.
Vérifiez d'abord que les fichiers PHP eux-mêmes sont encodés en [UTF-8][1].
La balise meta est ignorée par certains navigateurs. Si vous n'utilisez que des caractères ASCII, cela n'a pas d'importance de toute façon.
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
header('Content-Type: text/html; charset=utf-8');
Il s'agit d'un problème lié au fait que votre serveur Web envoie un en-tête HTTP qui ne correspond pas à celui que vous avez défini. Pour savoir comment faire en sorte que le serveur envoie les bons en-têtes, consultez [cette page][1].
Sinon, vous pouvez aussi utiliser PHP pour modifier les en-têtes, mais cela doit être fait avant de sortir un texte en utilisant ce code :
header('Content-Type: text/html; charset=utf-8');
Vous trouverez plus d'informations sur la façon d'envoyer des en-têtes avec PHP dans [la documentation de la fonction d'en-tête][2].
[1] : http://www.w3.org/International/questions/qa-changing-encoding#server [2] : http://php.net/manual/en/function.header.php