Acerca de este problema HTML
La especificación HTML establece que los documentos deben estar codificados en UTF-8. Este requisito existe porque UTF-8 es la codificación de caracteres universal que soporta prácticamente todos los caracteres de todos los sistemas de escritura del mundo. Las codificaciones más antiguas como windows-1252, iso-8859-1 o shift_jis solo soportan un subconjunto limitado de caracteres y pueden hacer que el texto se muestre incorrectamente — mostrando caracteres ilegibles o signos de interrogación — especialmente para usuarios en diferentes configuraciones regionales o cuando el contenido incluye símbolos especiales, letras acentuadas o emojis.
Cuando el validador encuentra charset=windows-1252 en tu etiqueta <meta>, marca esto como un error porque el estándar HTML vigente (WHATWG) establece explícitamente que la declaración de codificación de caracteres debe especificar utf-8 como la codificación. Esto no es solo una preferencia estilística — los navegadores y otras herramientas dependen de esta declaración para interpretar correctamente los bytes en tu documento. Usar una codificación que no sea UTF-8 puede llevar a vulnerabilidades de seguridad (como ataques XSS basados en codificación) y problemas de accesibilidad cuando las tecnologías de asistencia malinterpretan los caracteres.
Para solucionar este problema, sigue estos dos pasos:
-
Actualiza la etiqueta
<meta>para declararutf-8como el charset. -
Vuelve a guardar tu archivo con codificación UTF-8. La mayoría de los editores de código modernos (VS Code, Sublime Text, etc.) te permiten elegir la codificación al guardar — busca una opción como “Guardar con codificación” o revisa la barra de estado para ver la codificación actual. Si tu archivo estaba originalmente en
windows-1252, simplemente cambiar la etiqueta<meta>sin recodificar el archivo podría hacer que los caracteres especiales existentes se muestren incorrectamente.
La especificación HTML también recomienda usar la forma más corta <meta charset="utf-8"> en lugar de la directiva pragma más larga <meta http-equiv="Content-Type" ...>, ya que es más simple y logra el mismo resultado. Cualquiera de las dos formas es válida, pero la declaración del charset debe aparecer dentro de los primeros 1024 bytes del documento.
Ejemplos
Incorrecto: Usar charset windows-1252
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
Esto provoca el error del validador porque el charset no es utf-8.
Correcto: Usar la declaración corta de charset (recomendado)
<meta charset="utf-8">
Correcto: Usar la directiva pragma http-equiv con utf-8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Ejemplo de documento completo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>My Page</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
Ten en cuenta que la etiqueta <meta charset="utf-8"> debe ser el primer elemento dentro de <head>, antes que cualquier otro elemento (incluyendo <title>), para que el navegador conozca la codificación antes de empezar a procesar el resto del documento.
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.