Windows上のSASS(SCSS)でUTF-8を使う方法(Invalid Windows-31J characterエラーが出る場合の対処)
2024年8月9日
Windows 環境で CSS プリプロセッサ「SASS(SCSS)」使用時に、
Error: Invalid Windows-31J character "\xXX"
というエラーが出る場合の対処方法のメモです。
ここでは、コンパイル後の CSS を UTF-8 エンコーディングで出力する前提とします。
対処方法は色々ありますが、とりあえずペペっと解決するなら、次の3つの方法が手軽でしょう。
- 対処1:sass コマンド使用時に「-E utf-8」オプションを指定する
- 対処2:Compass のプロジェクトファイル「config.rb」で「Encoding.default_external = 'utf-8'」を指定する。
- 対処3:scssファイルの先頭に「@charset "UTF-8";」を指定。
(※@charset は先頭に記述します。その前に1文字も記述してはいけません。)
対処1の応用になりますが、NetBeans から Sass を使っている場合は、CSSプリプロセッサのコンパイラオプションとして「-E utf-8」を指定してやるのが良いでしょう。
また、そもそも論になりますが、Sass に限らず Windows 上で Ruby 系ツールを使う場合のエンコーディングを UTF-8 化するには、Windows の「chcp 65001」コマンドを使う回避策もあるようです。
若干、無理矢理感はありますが、どうにもダメだと使う機会もありそうな予感はします。