Position de la balise META Content-type

J'ai bricolé un peu récemment avec l'extension modèle objet d'un document de PHP (DOMDocument) et ça m'a rappelé une règle que j'avais oublié : la balise META Content-type, qui précise le type du document et éventuellement son jeu de caractères, doit être placée en première place dans HEAD.

Comme DOMDocument procède de manière séquentielle, si on a un document encodé en UTF-8, une balise TITLE avec des caractères accentués placée avant la balise META Content-type, DOMDocument considère que le titre est en ISO-8859-1. Pour contourner le problème, il faut utiliser la technique proposée par piopier qui consiste à insérer la META Content-Type avant d'appeler DOMDocument::loadHTML.

Ce n'est pas un problème pour les navigateurs et les crawlers des moteurs de recherche car leurs analyseurs syntaxiques doivent savoir comment contourner le problème, mais bon ça ne mange pas de pain de la placer au bon endroit.

Etiquettes:

Ajouter un commentaire

Articles sur les mêmes sujets