結論から言うと
(setenv "LC_ALL" "ja_JP.UTF-8") ;; or (setenv "LANG" "ja_JP.UTF-8")
を試しましょう
経緯
flycheck を ruby-mode で有効にしてるけど、未だに Invalid multibyte char (US-ASCII) とか言われており、1.9 時代の magic comment 書くと納まる。お前どこで警告出してるんや
— Wataru MIYAGUNI (@gongoZ) 2016, 2月 9
こんなファイルのことです。
p 'あいうえお'
メッセージ自体はお馴染のものなので
といった情報がググるとすぐ出てきます。確かに ↑ のファイルに # coding: utf-8
を追加したらメッセージは出なくなりました。
ですが私が使っているマシンにはもはや Ruby 1.9 は入っていないので、このメッセージが出るのがおかしい。ってことで謎は深まっておりました。
原因
そんなときに @syohex さんより
@gongoZ 環境変数 LANG, LC_ALLが Cとかだと出るっぽいですね. ja_JP.UTF-8とか es_US.UTF-8にして再度試してみていただけないでしょうか ?
— Syohei YOSHIDA (@syohex) 2016, 2月 9
といったアドバイスを頂いたので
(setenv "LC_ALL" "ja_JP.UTF-8")
を実行してみると
消えました。やったぜ。@syohex さんありがとうございました!
まとめ
以前から https://github.com/purcell/exec-path-from-shell は使っていて GOPATH
とか RBENV_ROOT
は取り込むようにしていましたが、
LC_ALL
とかのことは忘れていました。要注意。