先日、Rubyをターミナル内で実行するirbという機能を使ってプログラムを実行していたところ、日本語入力が正しく表示されず「文字化け」のようになってしまいました。
irbで日本語を入力するためには、コマンドが必要になるので今回は、irbで文字化けせずに日本語入力を行う方法を紹介します。
はじめに
今回紹介する方法は「Ruby」をターミナル内で実行する「irb」で日本語を入力する方法です。
実行環境は「ruby 2.3.3」「Mac Elcapitan」「ターミナル」を使っています。
「irb」で日本語を入力する方法について
実行環境は「ruby 2.3.3」「Elcapitan」「ターミナル」
別のバージョンやOSでは正しく動作しない可能性があるので注意してください。
irb実行コマンドは「ターミナル」にirbと入力するだけで、正しく実行できると以下のようになります。
この中で、Rubyのプログラムを実行できるので便利ですね。
ではまず先に日本語を入力するとどのようになるのか確認してください。
日本語を入力すると...
irbの中で日本語を入力すると以下のようになります。
「あいうえお」と入力したはずだったのですが、Enterキーで入力を確定させると自動的にこのような「文字化け」したようなテキストになってしまいます。
環境を確認
私の場合Rubyのアップデートでは解決しなかったのですが、念のため先にRubyのバージョンを確認して、必要ならアップデートしておきましょう。
まずターミナルに
ruby -v
と入力し、現在インストールされているRubyのバージョンを確認してください。
今回の場合であれば2.3.3を使っているので、以下のように入力すればOKです。
ruby install 2.3.3
rbenvのインストールやパスの通し方などについては詳しく解説はしないため、各自完了させておいてください。
解決策
では私が実際に行った解決方法を紹介します。
とはいっても、実際に解決した方法はいたって単純で、irbコマンドの後ろに、あるコマンドを追加するだけで日本語入力できるようになりました。
では、まず現在irbが起動している場合は「control + D」でirbを終了させてから、以下のようなコマンドを入力して実行してみてください。
irb --noreadline
通常「irb」を起動する時は「irb」のみなので、「–noreadline」が追加されているのがわかるかと思います。
このように入力してirbを実行することで、irb上で日本語入力ができるようになりました。
「あいうえお」が入力でき、実行すると「あいうえお」という文字列が出力されたのがわかるかと思います。
まとめ
今回紹介したように「irb –noreadline」でirbを実行することで、「irb」で日本語入力を可能にすることができました。
ただし、readlineを使わなくなるため、readlineの一部機能が使えなくなるようです。
私自身あまり理解できていないのでなんとも言えませんが、日本語入力をしたい時だけnoreadlineを入力し、そうでない場合はあまり多用しないほうが良いのかもしれません。
何はともあれ日本語入力の文字化けは回避できたので、同じような状態の方は参考にしてみてください。
ではまた。