CSSファイルのcharset指定方法

CSSファイルで使っている文字コードの宣言方法について。

文字コード宣言は、正しく行わなければ意図した通りに解釈されない可能性があります。
確認ブラウザ以外でも正しく表示させるために、正しく指定しましょう。


書式
@charset "コード名";

コード名
"UTF-8"、"Shift_JIS"、"EUC-JP" など。
IANAのCharacter Setsで定義されているMIME名で記入します。

記入例
@charset "UTF-8";
@charset 'Shift_JIS';

注意事項
文字コード宣言は必ずCSSファイルの1行目の頭で行う必要があります。
宣言の前に他の一切の文字を(スペースも)含んではいけません。
また、コード名は必ず、書式で示したようにダブルクオートか、シングルクオート(')で囲まなければなりません。

備考
CSS2 Rev1以降で利用可能です。

文字コードを正しく宣言しても、他の方法での指定が優先される場合があります。
一般にブラウザはコード判定を次の手順で行います。

1. HTTPヘッダのcharset属性
2. バイトオーダーマーク (UTF-8など)
3. @charset宣言
4. UTF-8と仮定

つまり、もしサーバ側でHTTPヘッダにcharsetが指定されていて、かつ変更する手段が無い場合は残念ながらお手上げということです。

Shift_JISは一般に、SJIS、Shift-JISとも表記されますが、CSSの仕様としては間違いのようです。全部小文字の"shift_jis"等はOKかもしれませんが、ブラウザの実装に依存することになりそうです。いまどきUTF-8以外使う奴おるかー?という感じもしますが、そこはそれ、過去のしがらみや大人の事情で使わざるを得ない場合もあるのです…
ところで、文字コードのことを言いたいときに、文字セット?エンコーディング?といつも迷ってしまうのは僕だけでしょうか(´・ω・`)

参考
@charset - CSS | MDN

テーマ: HTML - ジャンル: コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://itpc.blog87.fc2.com/tb.php/161-89524dec
この記事にトラックバック(FC2ブログユーザ用)