Accept-Charset

O cabeçalho de requisição HTTP Accept-Charset anuncia quais character encodings o cliente entende. Usando negociação de conteúdo, o servidor seleciona uma das codificações, a utiliza, e informa o cliente da sua escolha dentro do cabeçalho de resposta Content-Type, geralmente em um parâmetro charset=. Navegadores geralmente não mandam este cabeçalho, por que o valor padrão para cada recurso geralmente está correto e transmiti-lo iria permitir fingerprinting.

Se o servidor não pode servir nenhum codificação de caracteres vindo deste cabeçalho de requisição, ele pode teoricamente manda de volta um código de erro 406 Not Acceptable. Mas para uma melhor experiência de usuário, isso raramente é feito e o cabeçalho Accept-Charset é ignorado.

Nas versões mais antigas do HTTP/1.1, a codificação de caracteres definida era: ISO-8859-1. Isto não é mais recomendado, e agora todo tipo de conteúdo tem o seu próprio padrão.

O UTF-8 é agora muito bem suportado e extremamente recomendado como codificação de caracteres preferida. Para garantir melhor privacidade e através de menor entropia com base em configuração, todos os navegadores omitem o cabeçalho Accept-Charset: Internet Explorer 8+, Safari 5+, Opera 11+, Firefox 10+ e Chrome 27+ não o enviam mais.
Tipo de cabeçalho Request header
Forbidden header name sim

Sintaxe

Accept-Charset: <charset>

// Múltiplos tipos, com pesos baseados na sintaxe de quality value:
Accept-Charset: utf-8, iso-8859-1;q=0.5

Diretivas

<charset>
O nome da codificação de caracteres, como utf-8 ou iso-8859-15.
*
Qualquer codificação de caracteres não mencionada em qualquer lugar no cabeçalho; * é usado como coringa.
;q=<weight>
Qualquer codificação de caracteres é colocado na ordem de preferência, expresso usando um quality value relativo chamado de peso.

Exemplos

Accept-Charset: iso-8859-1

Accept-Charset: utf-8, iso-8859-1;q=0.5

Accept-Charset: utf-8, iso-8859-1;q=0.5, *;q=0.1

Especificações

Especificação Título
RFC 7231, sessão 5.3.3: Accept-Charset Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context

Compatibilidade de navegador

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Accept-CharsetChrome No support ? — 27Edge No support NoFirefox No support ? — 10IE No support ? — 8Opera No support ? — 11Safari No support ? — 5WebView Android No support ? — ?Chrome Android No support ? — 27Firefox Android No support ? — 10Opera Android No support ? — 11Safari iOS No support ? — 4.2Samsung Internet Android No support ? — 1.5

Legend

No support  
No support

Veja também