W3Cによると、CSSは最初の行で文字エンコードを設定できますが、ASCII文字しか含まれていない場合でも、作成したすべてのCSSを挿入する@charset
必要があると言っても問題ありませんか?@charset "UTF-8"
UTF-8を使用して宣言した後、パフォーマンスが低下しますか?
ps私はそれをテストする方法を考えることができません。
いいえ、修飾されていないステートメントとしてそう言うことは有効ではありません。ファイルにASCII文字のみが含まれている場合、その文字エンコードはASCII互換である可能性が非常に高いため(EBCDICは当時あまり使用されていません)、ルールは無害ですが、ファイルがASCIIのみである限り無意味です。
重要なのは、何らかの理由で非ASCII文字がCSSファイルに挿入されたときに何が起こるかです。たとえば、スマートクォートを生成するプログラムでファイルを編集するときに挿入された、無邪気な外観のスマートクォート(”)である可能性があります。スマートクォートは、UTF-8エンコーディングよりもwindows-1252エンコーディングに挿入される可能性が高くなります。したがって、ファイルに@charset "UTF-8"
ルールがある場合、問題の分析が少し難しくなる可能性があります。
一方、CSSファイルがデフォルトでUTF-8エンコードを使用するソフトウェアを使用して編集されることがわかっている場合は、ASCII文字しか含まれていない場合でもUTF-8エンコードとして宣言しても問題ありません。たとえば、いつかファイルを編集して、のような宣言を追加した場合、ルールcontent: "“foo”"
の追加を忘れる可能性があります。@charset
エンコーディングをUTF-8として宣言する際のオーバーヘッドはありません。データにASCII文字のみが含まれている場合、UTF-8を読み取る適切なルーチンは、ASCIIの単純な読み取りと同じ速さで文字を処理します。UTF-8バイトストリームを読み取るルーチンは、最初にバイトがASCII範囲内にあるかどうかを確認し、ASCII範囲内にある場合はASCII文字を表すものと見なす必要があります。