Widziałem tę instrukcję jako pierwszą linię wielu plików CSS, które zostały mi przekazane:
@charset "UTF-8";
Co to robi i czy ta reguła jest konieczna?
Ponadto, jeśli umieszczę ten metatag w moim elemencie „head”, czy wyeliminuje to potrzebę umieszczania go również w moich plikach CSS?
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
css
character-encoding
rsturim
źródło
źródło
Jest to przydatne w kontekstach, w których kodowanie nie jest podawane w nagłówku HTTP lub innych metadanych, np. W lokalnym systemie plików.
Wyobraź sobie następujący arkusz stylów:
Jeśli czytnik zapisze plik na dysku twardym i pominiesz
@charset
regułę, większość przeglądarek odczyta go z kodowaniem regionalnym systemu operacyjnego, np. Windows-1252, i wstawi † - zamiast strzałki.Niestety nie można polegać na tym mechanizmie, bo wsparcie jest raczej… rzadkie. I pamiętaj, że w sieci nagłówek HTTP zawsze ma pierwszeństwo przed
@charset
regułą.Prawidłowe reguły określania zestawu znaków arkusza stylów są uporządkowane według ważności:
@charset
zasada.Ostatnia reguła jest najsłabszy, to będzie nie w niektórych przeglądarkach. Atrybut jest przestarzały w HTML 5
charset
<link rel='stylesheet' charset='utf-8'>
.Uważaj na konflikt między różnymi deklaracjami. Nie są łatwe do debugowania.
Rekomendowane lektury
@charset
jeśli więcej niż jedna nazwa jest zarejestrowany do tego samego kodowania.@charset
. Jest stół podporowy. Nie ufam temu. :)źródło
content-type:text/css;charset=utf-8
nagłówkiem?Jednym z powodów, dla których należy zawsze umieszczać specyfikację zestawu znaków na każdej stronie zawierającej tekst, jest unikanie luk w zabezpieczeniach skryptów krzyżowych. W większości przypadków zestaw znaków UTF-8 jest najlepszym wyborem w przypadku tekstu, w tym stron HTML.
źródło
Jeśli umieszczasz tag <meta> w swoich plikach css, robisz coś nie tak. Znacznik <meta> należy do twoich plików html i informuje przeglądarkę, jak kodowany jest kod HTML, nie mówi nic o css, który jest oddzielnym plikiem. Można sobie wyobrazić zupełnie inne kodowanie html i css, chociaż nie wyobrażam sobie, żeby to był dobry pomysł.
źródło