SassでCompassのWindows -31Jエラーが出たときの対応(Ruby 2.0向けかも)


数時間悩んでシステムの友達とSkypeしながらようやくCompassがエラーを吐かなくなりました。

Sassでfont familyなどに日本語が入っているとWindowdでは
---------------------------
Encoding::UndefinedConversionError on line [“654”] of C: “\xEF\xBC” from Windows
-31J to UTF-8
---------------------------
的なエラーが出るようです。

色々なサイトを見てみると、コマンドプロンプトで
set RUBYOPT=-EUTF-8
と打てば解決といった人もいますが、自分はなぜか解決せず(知識ないせいでもある)

次に、システム環境変数のLANGを修正すればいいのだ!という記事を見つけたので試す。
システム環境変数は コンパネで環境変数と検索かければ出てきます。
で、詳細設定の「環境変数」をクリックするとユーザー用の変数を入れるところと、システムで入れるところが出ます。
ここは恐らく好みで大丈夫。
よし!LANGという変数を設定して値がja_JP.UTF-8でいける!!

と思ったがやはり無理。

そういえばどこかのサイトでRUBYOPTという変数を設定すればいけるという記事を見かけた。
んじゃLANGは削除して、RUBYOPTに「-EUTF-8」を入れて再起動(ログオフしてログインでもOKみたい)!

そしてKoalaを起動してコンパイルしてみたら・・・・
イケターーーーーーーーー!

ということでもしこんな記事が役に立ったら嬉しいですね。

 

--------------
追記です 2015/1/2

koalaをバージョンアップしたら同じ現象が再発。
今度はkoalaが参照しているディレクトリまでのパスの中に日本語が入っているとエラーが出てしまった。
簡単な回避法としてはディレクトリ名に2バイト文字を使用しないこと。