このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

@charset”ルール

記事Sep. 6th,2021
スタイルシートの文字エンコーディングを指定する“@charset”ルール
この記事はCSS3に対応しています。
この記事はCSS3に対応しています。

@charset”ルール

@charset”ルールはスタイルシートの文字エンコーディングを指定します。

@charset”ルールによって指定される文字エンコーディングは“代替エンコーディング”であり、BOMやHTTPヘッダーで文字エンコーディングがわからなかった場合にだけ使用されます。

@charset”ルールはCSSの中で一番最初に記述されなければならず、“@charset”ルールよりも前にはBOMを除いてどのような文字も記述してはいけません。

他の文字よりも後に記述された“@charset”ルールや複数の“@charset”ルールが記述された場合の2個目以降の“@charset”ルールは無視されます。

@charset”ルールは文字エンコーディングを判断するためだけに使用されます。

現代のウェブ上での既定の文字エンコーディングはUTF-8であるため、CSSもUTF-8で作成し、“@charset”ルールでも“utf-8”を指定することが推奨されます。

@charset”ルールはCSS2では@ルールの一つですが、CSS3では@ルールの形をしたバイト列(“40 63 68 61 72 73 65 74 20 2222 3B”)としており、厳密には@ルールではありません。

@charset”ルールの構文

@charset”ルールは厳密に、“@charset”、1個の半角スペース(U+0020)、二重引用符(“"”)に囲まれた文字エンコーディングの名前、セミコロン(“;”)の順に記述しなければなりません。

@charset "〚文字エンコーディング〛";

文字エンコーディングの名前は16進数のASCIIコードで“0”から“21”と“23”から“7F”で表される文字(ASCII文字のうち二重引用符(“"”)以外)で“Encoding Living Standard”仕様書に記載されているラベル名を記述します。

以下は文字エンコーディングの一例です。

エンコーディング名 説明
utf-8 UTF-8
shift_jis Shift_JIS
euc_jp Extended_UNIX_Code_Packed_Format_for_Japanese

なお、“utf-16be”もしくは“utf-16le”を指定した場合は“utf-8”として扱われます。

使用例

@charset "utf-8";

/* その他のCSSルール */
@import url(stylesheet-2.css);
@namespace url(http://www.w3.org/1999/xhtml);

@media all and (max-width: 640px) {
...

仕様書

定義されている仕様書
Level 1 Level 2 Level 3
勧告(REC) 勧告(REC) 勧告候補(CR)
@charset
定義なし

定義あり

定義あり
一番上へ
トップにもどる
シェアする
シェアする
Facebookでシェアする
ツイート
Google+でシェア
Pocket
はてなブックマーク