1001Ferramentas
🔤Dev

Parse Accept-Charset

Faz parse do header Accept-Charset (em desuso, substituído por UTF-8 padrão).

Charsets

Accept-Charset e por que ele não é mais usado

Accept-Charset foi o cabeçalho pelo qual o cliente informava quais codificações de caracteres sabia interpretar. Ele fazia sentido numa web em que ISO-8859-1, Windows-1252 e Shift_JIS conviviam e a escolha errada produzia página ilegível. Hoje ele está formalmente obsoleto: a RFC 7231 desaconselha o envio, e os navegadores pararam de mandá-lo.

A página lê o cabeçalho e ordena as codificações pelo fator q, do mesmo jeito que os outros cabeçalhos de negociação — item sem q vale 1, e a ordem no texto não é a de preferência. Serve para entender registro antigo de servidor, depurar cliente que ainda envia o cabeçalho e trabalhar com sistema legado que faz negociação por codificação.

O motivo do desuso é simples: UTF-8 venceu. Praticamente todo cliente atual entende UTF-8, e o caminho recomendado é servir tudo nessa codificação, declarando-a no parâmetro charset do Content-Type. Continuar negociando codificação hoje só acrescenta variação de cache e superfície para erro, sem benefício.

Perguntas frequentes

O navegador ainda envia esse cabeçalho?
Não. Chrome e Firefox pararam há anos, justamente porque enviá-lo aumentava a identificabilidade do usuário sem trazer benefício prático. Se ele aparece nos seus registros, veio de cliente programático, de biblioteca antiga ou de crawler.
Como declaro a codificação corretamente?
Pelo parâmetro charset do Content-Type na resposta, com o valor utf-8. Em HTML vale também a meta tag de charset, que precisa estar nos primeiros mil e vinte e quatro bytes do documento — mas quando os dois existem, o cabeçalho HTTP prevalece.
E o Accept-Encoding, também é obsoleto?
Não, e não se confundem: Accept-Encoding trata de compressão — gzip, Brotli, zstd — e é bastante usado. Accept-Charset tratava de codificação de caracteres. Os nomes parecidos são fonte frequente de confusão.

Ferramentas Relacionadas