Skip to main content
Validação HTML

Valor inválido “text/html; charset=windows-1251” para o atributo “content” no elemento “meta”: “charset=” deve ser seguido por “utf-8”.

Sobre este problema HTML

A especificação HTML5 obriga o UTF-8 como a única codificação de caracteres permitida para documentos web declarada através de tags <meta>. Codificações legadas como windows-1251 (uma codificação de caracteres cirílicos), iso-8859-1, shift_jis e outras deixaram de ser valores válidos em declarações <meta> do HTML5. Esta restrição existe porque o UTF-8 é uma codificação universal que pode representar virtualmente qualquer carácter de qualquer sistema de escrita, eliminando os problemas de interoperabilidade que assolaram a web quando dezenas de codificações concorrentes estavam em uso.

Quando o validador encontra content="text/html; charset=windows-1251" num elemento <meta>, assinala-o porque a parte charset= deve ser seguida por utf-8 — nenhum outro valor é aceite. Isto aplica-se quer você use a sintaxe mais longa <meta http-equiv="Content-Type"> ou a sintaxe mais curta <meta charset>.

Porque isto importa

  • Conformidade com as normas: O WHATWG HTML Living Standard exige explicitamente utf-8 como a codificação de caracteres quando declarada numa tag <meta>. Codificações não conformes irão desencadear erros de validação.
  • Internacionalização: O UTF-8 suporta todos os caracteres Unicode, fazendo com que as suas páginas funcionem corretamente para utilizadores de todas as línguas, incluindo texto cirílico para o qual o windows-1251 foi originalmente concebido.
  • Segurança: Codificações legadas podem introduzir vulnerabilidades de segurança, incluindo certos vetores de ataques de cross-site scripting (XSS) que exploram a ambiguidade da codificação.
  • Consistência do navegador: Embora os navegadores possam ainda reconhecer codificações legadas, depender delas pode causar mojibake (texto distorcido) quando há uma incompatibilidade entre a codificação declarada e a real.

Como corrigir

  1. Atualize a tag <meta> para declarar utf-8 como o charset.
  2. Volte a guardar o seu ficheiro em codificação UTF-8 usando o seu editor de texto ou IDE. A maioria dos editores modernos suportam isto — procure por uma opção de codificação em “Guardar Como” ou na barra de estado.
  3. Verifique a configuração do seu servidor. Se o seu servidor enviar um cabeçalho HTTP Content-Type com uma codificação diferente, o cabeçalho do servidor tem precedência sobre a tag <meta>. Certifique-se de que ambos concordam com UTF-8.
  4. Converta o seu conteúdo. Se o seu texto foi originalmente escrito em windows-1251, poderá precisar de o converter para UTF-8. Ferramentas como iconv na linha de comandos podem ajudar: iconv -f WINDOWS-1251 -t UTF-8 input.html > output.html.

Exemplos

❌ Incorreto: Usar charset windows-1251

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

✅ Correto: Usar utf-8 com sintaxe http-equiv

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

✅ Correto: Usar a sintaxe mais curta <meta charset> (preferida em HTML5)

<meta charset="utf-8">

Exemplo de documento completo

<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="utf-8">
    <title>Пример страницы</title>
  </head>
  <body>
    <p>Текст на русском языке в кодировке UTF-8.</p>
  </body>
</html>

A sintaxe mais curta <meta charset="utf-8"> é geralmente preferida em documentos HTML5 porque é mais concisa e consegue o mesmo resultado. Qualquer que seja a sintaxe que escolha, coloque a declaração charset dentro dos primeiros 1024 bytes do seu documento — idealmente como o primeiro elemento dentro de <head> — para que os navegadores possam detetar a codificação o mais cedo possível.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.