Skip to main content
Validación HTML

La declaración de codificación interna “windows-1251” no coincide con la codificación real del documento (“utf-8”).

Acerca de este problema HTML

Cuando un navegador carga un documento HTML, necesita saber qué codificación de caracteres usar para interpretar correctamente los bytes del archivo. El atributo charset de la etiqueta <meta> (o la declaración http-equiv="Content-Type") le dice al navegador qué codificación esperar. Si esta declaración dice windows-1251 pero el archivo está realmente guardado como utf-8, el navegador se enfrenta a señales conflictivas: la codificación declarada no coincide con el contenido real de bytes.

Esta discrepancia importa por varias razones:

  • Renderizado de texto roto: Los caracteres fuera del rango ASCII básico (como letras acentuadas, caracteres cirílicos, CJK, emoji y símbolos especiales) pueden mostrarse como caracteres ilegibles o de reemplazo (a menudo vistos como secuencias Ð, , u otro mojibake).
  • Integridad de datos: Los envíos de formularios y las operaciones de cadenas de JavaScript pueden producir datos corruptos si el navegador interpreta la codificación incorrectamente.
  • Cumplimiento de estándares: El WHATWG HTML Living Standard requiere que la declaración de codificación coincida con la codificación real del documento. Los validadores marcan esta discrepancia como un error.
  • Comportamiento inconsistente: Diferentes navegadores pueden manejar el conflicto de manera diferente: algunos pueden confiar en la etiqueta <meta>, otros pueden detectar la codificación real, llevando a resultados impredecibles entre diferentes agentes de usuario.

Cómo solucionarlo

  1. Determina la codificación real de tu archivo. La mayoría de editores de texto modernos (VS Code, Sublime Text, Notepad++) muestran la codificación del archivo en la barra de estado. Si tu archivo está guardado como UTF-8 (que es la codificación recomendada para todo contenido web nuevo), tu etiqueta <meta> debe reflejarlo.

  2. Actualiza la etiqueta <meta> para declarar utf-8 en lugar de windows-1251.

  3. Prefiere la sintaxis charset más corta introducida en HTML5, que es más simple y equivalente a la forma http-equiv más antigua.

  4. Coloca la declaración de codificación dentro de los primeros 1024 bytes del documento, idealmente como el primer elemento dentro de <head>, para que el navegador la encuentre antes de analizar otro contenido.

Ejemplos

❌ Incorrecto: la codificación declarada no coincide con la codificación real del archivo

El archivo está guardado como UTF-8 pero la etiqueta <meta> declara windows-1251:

<head>
  <meta charset="windows-1251">
  <title>My Page</title>
</head>

O usando la sintaxis http-equiv más antigua:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  <title>My Page</title>
</head>

✅ Correcto: la codificación declarada coincide con el archivo UTF-8 real

Usando el atributo charset moderno de HTML5:

<head>
  <meta charset="utf-8">
  <title>My Page</title>
</head>

O usando la forma http-equiv equivalente:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>My Page</title>
</head>

✅ Correcto: 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>

¿Y si realmente necesitas windows-1251?

Si tu contenido genuinamente requiere codificación windows-1251 (por ejemplo, un archivo de texto cirílico heredado), necesitas volver a guardar el archivo con codificación windows-1251 usando tu editor de texto. Sin embargo, UTF-8 es altamente recomendado para todo contenido web porque soporta todos los caracteres Unicode y es la codificación predeterminada para HTML5. Convertir tu archivo a UTF-8 y actualizar la etiqueta <meta> en consecuencia es casi siempre el mejor camino a seguir.

Encuentra problemas como este automáticamente

Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.