このブログをご覧のみなさん、こんにちは。
「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
を設定する必要がありますが、漏れていたようです。そこで、上記を追記して実行したところ、エラーが解消されました。