Skip to main content
Validação HTML

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

Sobre este problema HTML

A especificação HTML determina que os documentos devem ser codificados em UTF-8. Este requisito existe porque o UTF-8 é a codificação de caracteres universal que suporta virtualmente todos os caracteres de todos os sistemas de escrita do mundo. Codificações mais antigas como windows-1252, iso-8859-1, ou shift_jis apenas suportam um subconjunto limitado de caracteres e podem causar a exibição incorreta de texto — mostrando caracteres corrompidos ou pontos de interrogação — especialmente para utilizadores em diferentes localizações ou quando o conteúdo inclui símbolos especiais, letras acentuadas, ou emojis.

Quando o validador encontra charset=windows-1252 na sua tag <meta>, sinaliza isto como um erro porque o padrão HTML living (WHATWG) afirma explicitamente que a declaração de codificação de caracteres deve especificar utf-8 como a codificação. Isto não é apenas uma preferência estilística — navegadores e outras ferramentas dependem desta declaração para interpretar corretamente os bytes no seu documento. Usar uma codificação não-UTF-8 pode levar a vulnerabilidades de segurança (como ataques XSS baseados em codificação) e problemas de acessibilidade quando tecnologias assistivas interpretam mal os caracteres.

Para corrigir este problema, siga dois passos:

  1. Atualize a tag <meta> para declarar utf-8 como o charset.
  2. Volte a guardar o seu ficheiro com codificação UTF-8. A maioria dos editores de código modernos (VS Code, Sublime Text, etc.) permitem-lhe escolher a codificação ao guardar — procure uma opção como “Guardar com Codificação” ou verifique a barra de estado para a codificação atual. Se o seu ficheiro estava originalmente em windows-1252, simplesmente alterar a tag <meta> sem recodificar o ficheiro pode causar a exibição incorreta de caracteres especiais existentes.

A especificação HTML também recomenda usar a forma mais curta <meta charset="utf-8"> em vez da diretiva pragma mais longa <meta http-equiv="Content-Type" ...>, pois é mais simples e alcança o mesmo resultado. Qualquer forma é válida, mas a declaração do charset deve aparecer dentro dos primeiros 1024 bytes do documento.

Exemplos

Incorreto: Usar charset windows-1252

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

Isto gera o erro do validador porque o charset não é utf-8.

Correto: Usar a declaração curta de charset (recomendado)

<meta charset="utf-8">

Correto: Usar a diretiva pragma http-equiv com utf-8

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

Exemplo 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>

Note que a tag <meta charset="utf-8"> deve ser o primeiro elemento dentro de <head>, antes de quaisquer outros elementos (incluindo <title>), para que o navegador conheça a codificação antes de começar a analisar o resto do documento.

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.