数カ月前の記事で、compassの新バージョンで@charset
が消えてしまう不具合のようなものがある!と書いてしまいましたが、僕の勘違いだったので、それについてまとめました。
@charsetが消えるのはsassの新しい仕様
コンパイルしたcssから@charset "UTF-8"
の記述が消えてしまうのは、sassのバージョン3.4あたりからの仕様のようです。
まず、@charset "UTF-8"
が消えるのは、コンパイル時の出力形式を:compressed
にした時です。
:expanded
等でコンパイルした場合には、@charset
も書き出されます。
:compressed
でコンパイルした場合、@charset
が省略される代わりに、ファイルにUTF-8のBOMが追加されます。
このBOMのおかげで、ブラウザはcssファイルの文字コードを適切に処理できるようです。
ちなみに、アップデートによる不具合は…
sassとcompassのアップデート時に、サイトの表示がわずかに変わってしまったので、てっきり@charset
が消えたせいだと思っていました。
しかし、検証してみたところ、それは全然別の部分が原因でした。(compassのVertical Rhythm関連の仕様変更が原因でした。)
今回の件に関しては、間違った情報を流してしまって申し訳ないです。
いずれにしても、sassやcompassのアップデートは、色々な仕様変更が生じるので注意が必要ですね。