CSSの「@charset “utf-8”;」は書かなくてOK

CSSの一番最初に書く呪文「@charset “utf-8”;」

自分はエディターを変えたタイミングでこの呪文を書くのをやめました。(以前はCSSを作成するとエディターが自動で挿入してた)

なぜならUTF-8でしかコードを書かないからです。

仕様によると、ブラウザは次の順番でCSSの文字エンコーディングを推定します。

https://developer.mozilla.org/ja/docs/Web/CSS/@charset

  1. ファイル先頭にある Unicode byte-order 文字 (BOM) の値
  2. Content-Type: HTTP ヘッダーの charset 属性、またはスタイルシートを送るのに使われたプロトコル内の同等のものから、得られた値
  3. CSS の @charset at-規則
  4. 文書参照で定義されている文字エンコーディングを使用。<link> 要素の charset 属性です。この方式は HTML5 で廃止されており、使うべきではありません。
  5. 文書が UTF-8 だと仮定する

CSSの頭に各@charsetは3番目なのです。自分が使っているエディタはBOMは含めないようになっているので1はスルーで、2でほとんどの環境でUTF-8であることは分かると思います。

万が一、2でエンコーディングが判明しなかった場合は、3,4が無くて、5でUTF-8と仮定されます。

だから「@charset “utf-8”;」は書いていません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA