Eu tenho visto essas instruções como a primeira linha de vários arquivos CSS que foram entregues para mim:
@charset "UTF-8";
O que faz e isso é necessário em regra?
Além disso, se eu incluir essa metatag no meu elemento "head", isso eliminaria a necessidade de tê-lo presente também nos meus arquivos CSS?
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
css
character-encoding
rsturim
fonte
fonte
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:
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:
@charset
regraA ú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
@charset
se mais de um nome estiver registrado para a mesma codificação.@charset
. Existe uma tabela de suporte. Eu não confio nisso. :)fonte
content-type:text/css;charset=utf-8
cabeçalho?Um motivo para sempre incluir uma especificação de conjunto de caracteres em todas as páginas que contêm texto é evitar vulnerabilidades de script entre sites. Na maioria dos casos, o conjunto de caracteres UTF-8 é a melhor opção para texto, incluindo páginas HTML.
fonte
Se você estiver colocando uma tag <meta> nos arquivos css, estará fazendo algo errado. A tag <meta> pertence aos seus arquivos html e informa ao navegador como o html é codificado. Ele não diz nada sobre o css, que é um arquivo separado. Você poderia ter codificações completamente diferentes para o seu html e css, embora eu não possa imaginar que isso seria uma boa idéia.
fonte