charset = iso-8859-1 avec & lt;! DOCTYPE HTML & gt; jeter un avertissement?
Je viens de validé un html doc à l'aide de la W3-validator , et a constaté que Si j'utilise:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
avec:
<!DOCTYPE HTML>
- Il lance un avertissement
Line 4, Column 72: Using windows-1252 instead of
the declared encoding iso-8859-1.
Toutefois, il est résolu si j'utilise:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Je ne comprends pas vraiment ce qui se passe, aussi, je ne sais même pas comment utiliser la balise DOCTYPE, j'ai juste copié et collé l'un sur le web.
Quelqu'un peut me pointer dans la bonne direction pour comprendre:
- pourquoi cela se produit
- et, comment utiliser la balise DOCTYPE
source d'informationauteur ajax333221
Vous devez vous connecter pour publier un commentaire.
Deux points:
<meta charset="iso-8859-1">
Cela dit, HTML validateurs ne pas servir à grand-chose dans cette journée et l'âge.
Aussi, pourquoi avez-vous besoin de préciser que le jeu de caractères particulier?
MODIFIER:
Mon mal, apparemment, la valeur par défaut pour HTML4 iso=8869-1. Cela dit, le jeu de caractères par défaut pour le HTML5 est utf-8.
Plus d'informations sur le doctype HTML5 peuvent être trouvés dans ce post par John Resig
Changer le DOCTYPE est tout simplement de désactiver l'avertissement - ce n'est pas vraiment la fixation chose.
iso-8859-1
etwindows-1252
sont très similaires encodages. Ils ne diffèrent que dans les personnages associés avec 32 octets de valeurs à partir de 0x80 pour 0x9F, qui eniso-8859-1
sont mappés à des caractères de contrôle et danswindows-1252
sont mappés à quelques personnages comme le symbole de l'Euro.Les caractères de contrôle sont inutiles dans le code HTML, et les auteurs de sites web, à tort, souvent déclarer
iso-8859-1
et pourtant, l'utilisation d'un ou de plusieurs de ces 32 valeurs comme si elles étaient à l'aide dewindows-1252
afin que les navigateurs lorsqu'ils voient leiso-8859-1
charset déclaré changera automatiquement de cewindows-1252
.Le validateur est tout simplement pour vous avertir que cela va se produire. Si vous n'êtes pas à l'aide de l'une des 32 valeurs d'octets, alors vous pouvez simplement ignorer l'avertissement - ce n'est PAS une erreur. Si vous êtes, et vous souhaitons véritablement le
iso-8859-1
interprétation des valeurs d'octets et non pas lewindows-1252
interprétation, vous faites quelque chose de mal.De nouveau, cette commutation se passe dans les navigateurs pour n'importe quel DOCTYPE, c'est juste que le validateur HTML5 est plus utile sur ce que c'est vous dire que le HTML4 valideur.
"À l'aide de windows-1252 au lieu de la déclaration de l'encodage iso-8859-1."
Cela signifie que le fichier a été enregistré avec l'encodage windows 1252 à la création (aka l'Ouest de Windows 1252 ou cp1252) et votre charset déclaration dit "hey lire ce fichier avec de l'iso-8859-1" quand ce n'est pas l'encodage du fichier.
La meta charset existe pour cette raison. Il existe de déclarer l'encodage du fichier que vous envoyez/lecture/aide aussi, quand, par exemple un navigateur, lit le document, il sait ce que l'encodage du fichier.
Dans le détail, vous avez ce charset déclaré:
Mais le fichier de la validation est en fait codé en Windows 1252. Comment? Pourquoi? Vérifier l'éditeur de texte que vous utilisez et ce que le codage, il est utilisé pour enregistrer des fichiers. Si l'éditeur peut être configuré pour modifier l'encodage, choisissez celui que vous souhaitez utiliser.
Sur HTML5
À l'aide de
ou
sont à la fois valables pour HTML5. Voir <meta charset="utf-8"> vs <meta http-equiv="Content-Type">
Je vois que c'est une vieille question, mais il semble qu'il vaut mieux fournir une mise à jour de réponse. Peut-être que j'ai remarqué quelque chose que d'autres n'ont pas (après avoir rencontré le même problème et donc de trouver ce post avant de travailler moi-même).
Le validateur du W3C propose des options pour lesquelles le codage du programme de validation utilise. Vous avez encodage spécifié dans votre document, vous devriez donc voir "Encoding: iso-8859-1" dans le bloc supérieur de l'information une fois que le validateur a été exécuté. À droite, il y a un menu déroulant. Modifier le choix de "(détecter automatiquement)", "iso-8859-1 (europe Occidentale)". Le validateur va ensuite utiliser iso-8859-1 au lieu de son propre choix, et vous ne recevrez pas l'erreur.
Faire le suivi:
ISO 8859-15 ouais -15 et il va fonctionner. Je sais que cette réponse est nouveau et que la question est ancienne, mais l'idée est que les futurs utilisateurs venant de moteurs de recherche comme moi obtient la bonne réponse
Ne mettez pas trop de stock dans les validateurs. Il y a en général trop d'Internet Explorer des solutions de rechange, en particulier dans le css, qui voyage le validateur. Si votre pages du travail dans tous les navigateurs et votre client est satisfait, il n'importe ce que certains validateur dit?
Si vous spécifiez le doctype html5, alors vous devriez être en cohérence avec la meta charset attribut. Essayez ce bien pour vos pages: