InfoSEO

Declaração de charset ausente — Evite problemas de codificação de caracteres

Declarar charset UTF-8 evita problemas de codificação de caracteres.

O que é a declaração de charset?

A meta tag de charset informa ao navegador qual codificação de caracteres usar ao renderizar a página. Sem ela, o navegador precisa adivinhar, o que pode gerar texto corrompido, especialmente com caracteres não ASCII.

Por que isso importa?

Problemas de codificação

Sem uma declaração de charset:

  • Caracteres acentuados podem virar lixo: “café” → “café”
  • Emojis podem não aparecer corretamente
  • Alfabetos não latinos (chinês, árabe, japonês, etc.) podem ficar ilegíveis
  • Caracteres especiais como travessões, aspas tipográficas e símbolos podem quebrar

Segurança

  • Declarações de charset ausentes podem abrir caminho para ataques UTF-7 XSS em navegadores antigos
  • A especificação HTML5 exige uma declaração de charset por motivos de segurança

Performance

  • Quando o navegador precisa adivinhar a codificação, pode ser necessário re-parsear a página depois de descobri-la
  • Isso causa um flash breve ou re-renderização

Como corrigir

Adicione isto como o primeiro elemento dentro do seu <head>:

<meta charset="UTF-8" />

Por que UTF-8?

UTF-8 é o padrão universal para conteúdo web:

  • Suporta todos os caracteres de todos os idiomas
  • É compatível com ASCII
  • Usado por mais de 98% dos sites no mundo
  • Exigido pela especificação HTML5
  • Codificação padrão para JSON, JavaScript e muitas APIs

Boas práticas

  1. Sempre use UTF-8 — Não há bom motivo para usar outra coisa na web moderna
  2. Coloque primeiro no <head> — O navegador precisa saber a codificação antes de parsear o restante do conteúdo
  3. Mantenha nos primeiros 1024 bytes — Exigência da especificação HTML para detecção de encoding
  4. Alinhe com os headers do servidor — Garanta que o servidor envie Content-Type: text/html; charset=UTF-8
  5. Salve os arquivos como UTF-8 — Confira se o editor e as ferramentas de build geram arquivos em UTF-8

A sintaxe alternativa

Você também pode ver esta sintaxe mais antiga e equivalente:

<!-- HTML5 (recommended) -->
<meta charset="UTF-8" />

<!-- HTML4/XHTML (older, still works) -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

A sintaxe HTML5 (<meta charset="UTF-8" />) é preferida por ser mais simples.

Artigos relacionados