Это полезно в тех случаях, когда кодировка не указывается в заголовке HTTP или других метаданных, например в локальной файловой системе.
Представьте себе следующую таблицу стилей:
[rel="external"]::after
{
content: ' ↗';
}
Если читатель сохраняет файл на жесткий диск и вы пропускаете @charset
правило, большинство браузеров будут читать его в кодировке локали ОС, например, Windows-1252, и вставлять â † вместо стрелки.
К сожалению, вы не можете полагаться на этот механизм, так как поддержка довольно ... редка. И помните, что в сети заголовок HTTP всегда будет переопределять @charset
правило.
Правильные правила для определения набора символов таблицы стилей расположены в порядке приоритета:
- HTTP Charset header.
- Порядок следования байтов.
- Первое
@charset
правило.
- UTF-8.
Последнее правило является самым слабым, он будет терпеть неудачу в некоторых браузерах. Атрибут является устаревшим в HTML 5 .
Остерегайтесь конфликта между различными декларациями. Их нелегко отладить.
charset
<link rel='stylesheet' charset='utf-8'>
Рекомендуемое чтение