rails consoleでutf-8の文字が文字化けしてErrorになる件

ruby_icon_314

以前からrails c の時に、日本語が入らないのは知ってたんだけど もうどうしても日本語を使いたくなって仕方なかったのでErrorを解消した。
ちなみに理由はMeCabを使った形態素解析でいろいろ試したかったから。

今回の環境は
MacOS X (10.11.2) El Capitan
ruby 2.2.3

エラーの内容は以下

[3] pry(main)> hoge = "������"
/Users/ore/dev/sample/vendor/bundle/ruby/2.2.0/gems/pry-0.10.2/lib/pry/history.rb:106:in `write': "\xE3" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)

rbenv でrubyをインストールしなおしてみる

最初に参考にした記事
http://qiita.com/Tamadon/items/347baf2ba89ccde89624
これをみつつ、現在インストールされている ruby 2.2.3を削除して

CONFIGURE_OPTS="--with-readline-dir=/usr/local/opt --with-openssl-dir=/usr/local/opt" rbenv install 2.2.3

を使って入れなおしてみた。
もちろん事前に brewを使ってdeadlineは入っている

結果

(゚∀゚) pryコマンドでは日本語が入るようになった!!

しかし、 bundle exec rails consoleをするとまだ同じErrorが出る。 なんでだよ!!

なんか調べてみると、動かしているrubyではなくてbundlerで管理している gem rb-readlineが関係してるとか・・
どうしたらええねん

pryrcというモノがこの世にあることを初めてしる

探してたらこのEntryを発見した。

ていうか、この記事なかったらあと数時間はMCハマーしてたと思う。

そもそも、pryrcて設定ファイルを置ける事初めて知ったし。
というわけで、案1に書いてあった 方法をやってみる
vi ~/.pryrc
でファイルを作成
Pry.config.history.should_save = false
とだけ書いて保存

bundle exec rails console してみた結果

[3] pry(main)> hoge = "������"
=> "\xE3\x81\xBB\xE3\x81\x92"
[4] pry(main)> puts hoge
ほげ
=> nil

動いた!! (∩´∀`)∩
一発目の行でまだ文字化けしてたから、またか! と最初は一瞬焦ったが
エラーがraiseされないでそのまま進んだので一安心。 puts してみるとちゃんとUTF-8で入ってますね。
良かった良かった。

おわり。

2015-12-26 | Posted in RailsNo Comments » 


関連記事

Comment





Comment



*