Isso é útil em contextos em que a codificação não é informada por cabeçalho HTTP ou outros metadados, por exemplo, o sistema de arquivos local.
Imagine a seguinte folha de estilo:
[rel="external"]::after
{
content: ' ↗';
}
Se um leitor salvar o arquivo em um disco rígido e você omitir a @charset
regra, a maioria dos navegadores o lerá na codificação local do sistema operacional, por exemplo, Windows-1252 e inserirá † - em vez de uma seta.
Infelizmente, você não pode confiar nesse mecanismo, pois o suporte é bastante… raro. E lembre-se de que, na rede, um cabeçalho HTTP sempre substituirá a @charset
regra.
As regras corretas para determinar o conjunto de caracteres de uma folha de estilo estão em ordem de prioridade:
- Cabeçalho HTTP Charset.
- Marca de Pedido de Byte.
- A primeira
@charset
regra
- UTF-8.
A última regra é o mais fraco, ele irá falhar em alguns navegadores.
O charset
atributo in <link rel='stylesheet' charset='utf-8'>
é obsoleto no HTML 5 .
Cuidado com os conflitos entre as diferentes declarações. Eles não são fáceis de depurar.
Leitura recomendada