etiqueta charset agregar adddefaultcharset acentos html character-encoding doctype html-validation

html - agregar - php charset iso 8859 1



charset=iso-8859-1 con<! DOCTYPE HTML> lanzando una advertencia? (6)

"Usar Windows-1252 en lugar de la codificación declarada iso-8859-1". Significa que el archivo se guardó con la codificación de ventanas 1252 en la creación (también conocido como Western Windows 1252 o cp1252) y su declaración de juego de caracteres dice "oye este archivo con iso-8859-1" cuando esa no es la codificación que tiene el archivo.

El meta juego de caracteres existe por esa razón. Existe para declarar la codificación del archivo que está enviando / leyendo / usando para que cuando, por ejemplo, un navegador, lea el documento, sepa qué codificación está usando el archivo.

En detalle, tiene este conjunto de caracteres declarado:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Pero el archivo que está validando está realmente codificado en Windows 1252. ¿Cómo? ¿Por qué? Compruebe el editor de texto que está utilizando y qué codificación está utilizando para guardar archivos. Si el editor se puede configurar para cambiar la codificación, elija la que desea usar.

Acerca de HTML5

Utilizando

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

o

<meta charset="iso-8859-1">

son ambos válidos para HTML5. Ver <meta charset = "utf-8"> vs <meta http-equiv = "Tipo de contenido">

Acabo de validar un documento html utilizando el validador W3 y descubrí que si uso:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

con:

<!DOCTYPE HTML>

  • Lanza una advertencia Line 4, Column 72: Using windows-1252 instead of the declared encoding iso-8859-1.

Sin embargo, se soluciona si uso:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Realmente no entiendo lo que está pasando, ni siquiera sé cómo usar la etiqueta DOCTYPE, simplemente copié y pegué uno de la web.

¿Puede alguien señalarme en la dirección correcta para entender:

  • por qué sucede esto
  • y, cómo usar la etiqueta DOCTYPE

Cambiar el DOCTYPE es simplemente apagar la advertencia, en realidad no está arreglando nada.

iso-8859-1 y windows-1252 son codificaciones muy similares. Solo se diferencian en los caracteres asociados con los valores de 32 bytes de 0x80 a 0x9F, que en iso-8859-1 se asignan a los caracteres de control y en windows-1252 se asignan a algunos caracteres útiles, como el símbolo del euro.

Los caracteres de control son inútiles en HTML, y los autores web a menudo declaran erróneamente iso-8859-1 y aún usan uno o más de esos 32 valores como si estuvieran usando windows-1252 , entonces los navegadores cuando ven el iso-8859-1 caracteres iso-8859-1 ser declarado cambiará automáticamente esto para ser windows-1252 .

El validador simplemente le advierte que esto sucederá. Si no está utilizando ninguno de los valores de 32 bytes, simplemente puede ignorar la advertencia, NO es un error. Si lo es, y realmente quiere la interpretación iso-8859-1 de los valores de bytes y no la interpretación de windows-1252 , está haciendo algo mal.

Nuevamente, esta conmutación ocurre en los navegadores para cualquier DOCTYPE, es solo que el validador HTML5 es más útil acerca de lo que le está diciendo que el validador HTML4.


Haz lo siguiente:

ISO 8859-15 sí -15 y funcionará. Sé que esta respuesta es nueva y la pregunta es antigua, pero la idea es que los futuros usuarios que provienen de los motores de búsqueda como yo obtengan la respuesta correcta


No coloque demasiado stock en los validadores. Normalmente hay demasiadas soluciones de Internet Explorer, especialmente en el CSS, que harán que el validador se desconecte. Si sus páginas funcionan en todos los navegadores y su cliente está contento, ¿es importante lo que dice un validador?

Si especifica el tipo de documento html5, debe ser coherente con el atributo meta charset. Intenta esto para tus páginas:

<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> </head> <body> </body> </html>


Puntos de pareja:

  1. Cualquier validación de HTML5 debe tomarse con un grano de sal. La especificación aún está en desarrollo activo, y no todo está escrito en piedra.
  2. Está utilizando la sintaxis HTML4 para esa metaetiqueta. Pruebe <meta charset="iso-8859-1">

Dicho esto, los validadores de HTML no sirven para tanto en este día y edad.

Además, ¿por qué necesita especificar ese juego de caracteres en particular?

EDITAR :

Mi mal, aparentemente el valor predeterminado para HTML4 era iso = 8869-1. Dicho esto, el juego de caracteres predeterminado para HTML5 es utf-8.

Se puede encontrar más información sobre el doctype HTML5 en esta publicación de John Resig


Veo que esta es una pregunta antigua, pero pensé que era mejor proporcionar una respuesta actualizada. Tal vez me he dado cuenta de algo que otros no tienen (después de encontrar el mismo problema y encontrar esta publicación antes de resolverlo).

El validador W3C ofrece opciones para las cuales la codificación usa el validador. Ha especificado la codificación en su documento, por lo que debería ver "Codificación: iso-8859-1" en el bloque superior de información una vez que se haya ejecutado el validador. A la derecha de eso, hay un menú desplegable. Cambie la opción de "(detectar automáticamente)" a "iso-8859-1 (europeo occidental)". El validador usará entonces iso-8859-1 en lugar de su propia elección, y no recibirá el error.