Windows環境でStyleDoccoを使う際に発生する「Invalid Windows-31J character」の解決方法

photo credit: kylethale via photopin cc

「Windows環境でStyleDoccoを使う際に発生する「Invalid Windows-31J character」への対応方法」を探るのが目的で環境構築をしていた。というわけで、本件への対応方法を調べたので以下に記載する。

「Invalid Windows-31J character」への解決方法

原因その1と解決方法

Windows環境におけるRubyの外部エンコーディング問題が原因。WindowsでRubyを実行すると規定の外部エンコーディングがWindows-31Jになるので、

Error: Invalid Windows-31J character ...

というエラーが出る。根本的な解決方法は、環境変数LANGを設定する。以下のコマンドを実行するか、

>set LANG=ja_JP.utf8

環境変数の編集でLANGを追加する。

原因その2と解決方法

上記の対応をしても同様のエラーが出るというので、エラーメッセージをもらったところ、

Running "sass:main" (sass) task
Error: Invalid Windows-31J character "\xE3"
        on line 10 of assets/stylesheets/_xxx.scss
        from line 2 of assets/stylesheets/yyy.scss
  Use --trace for backtrace.
Warning: Exited with error code 65 Use --force to continue.
 Aborted due to warnings.

assets/stylesheets/_xxx.scssの中身を確認したところ、

@charset "utf-8";

の記載がassets/stylesheets/_xxx.scssになかった。つまり、文字コードの指定漏れが原因。コメントなどに日本語を含める場合、ファイルの先頭で@charsetを使用してUTF-8 を設定する必要があるが、漏れていた。そこで、上記を追記して実行したところ、エラーは解消された。