Prepros SCSSコンパイル時に’Error: Invalid Windows-31J character “\xE3″‘のエラーが出る
PreprosのSCSSコンパイラは快適に動いてくれてDreamweaverよりも信頼性が高い。
個人的にはcssファイルやJsファイル内では2バイト文字は使用しないが、git環境などで共有作業をしていると他の人が書いたコードが紛れ込むことがある。
先日SCSSを保存した時に、Error: Invalid Windows-31J character “\xE3″ なるエラーが発生しページが完全に崩れてしまった。
PreprosのコンパイラにはNode Sassを指定しているが、SCSSコード内にWindows-31J 文字コードが紛れてしまったようだ。
良く考えるとCSS内で2バイトの完全除去は難しいが、SCSS作業に移ってからは偶然発生していなかったのだ。
このエラーは文字コード Windows-31Jに起因するもので、私曰く
- 『国内ソフトのバグの55.5パーセントは文字コードに起因する』
- 『リソースの33.3パーセントが無駄に使われている』
- 『年間の経済損失は2222億円』
などの持論はさておき、解決策は簡単でコード内からWindows-31J 文字を除去する。
いや、もっと簡単で基本的なお約束事があった。
@charset “UTF-8”;
をSCSSの先頭行に記述するのだ。