J'ai plusieurs pages PHP faisant écho à diverses choses dans des pages HTML avec le code suivant.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Cependant, lorsque je valide en utilisant le validateur W3C, il arrive:
Le codage de caractères spécifié dans l'en-tête HTTP (iso-8859-1) est différent de la valeur de l'élément (utf-8).
Je suis assez nouveau sur PHP, et je me demandais si je pouvais et devrais changer l'en-tête des fichiers PHP pour qu'ils correspondent aux fichiers HTML.
php
html
http-headers
manycheese
la source
la source
<meta>
balise.META
est utilisé lorsque le document HTML n'est pas chargé via HTTP (par exemple à partir du disque).Assurez-vous d'abord que les fichiers PHP eux-mêmes sont encodés en UTF-8 .
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
la source
Il s'agit d'un problème avec l'envoi par votre serveur Web d'un en-tête HTTP qui ne correspond pas à celui que vous définissez. Pour obtenir des instructions sur la manière d'envoyer au serveur les en-têtes appropriés, consultez cette page .
Sinon, vous pouvez également utiliser PHP pour modifier les en-têtes, mais cela doit être fait avant de sortir du texte en utilisant ce code:
Plus d'informations sur la façon d'envoyer des en-têtes en utilisant PHP peuvent être trouvées dans la documentation de la fonction d'en-tête .
la source
Vous pouvez également utiliser une méthode plus courte:
Voir RFC 2616 . Il est valide de spécifier uniquement le jeu de caractères.
la source
Content-Type = "Content-Type" ":" media-type
etmedia-type = type "/" subtype *( ";" parameter )
Pour une implémentation correcte, vous devez modifier une série de choses.
Base de données (immédiatement après la connexion):
la source
PHP envoie automatiquement les en-têtes s'il est configuré pour utiliser l'encodage interne:
la source