現象
以下のような感じです。便宜上、文字化けと表記しています。
$ irb irb(main):001:0> a = "\U+FFE3\U+FFE3\U+FFE3\U+FFAB\U+FFE3\U+FFA1\U+FFE3\U+FFAF\U+FFEF\U+FFBC" # 「こんにちは」と入力した => "" irb(main):002:0> a => ""
結論
Homebrew で readline
をインストールし、それを用いて Ruby をインストールする。
1. Homebrew で readline をインストールする
以下のようにします。
$ brew install readline
2. readline を用いて Ruby がインストールされるよう環境変数に設定する
ここでは rbenv
を使ってインストールしています。
まず readline
を使うことを明示的に環境変数に設定します。ここでは一時的に設定していますが、永続的に設定してもよいと思います。
$ RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)"
3. Ruby をインストールする
上記の設定ができたら Ruby のインストールを行います。ビルド時に readline
が用いられていることが分かります。
$ rbenv install 2.5.1 Downloading openssl-1.1.0i.tar.gz... (中略) ruby-build: use readline from homebrew (後略)
4. 動作確認をする
Ruby がインストールできたならば irb
を起動して動作を確かめます。
$ irb irb(main):001:0> a = "こんにちは" => "こんにちは" irb(main):002:0> a => "こんにちは" irb(main):003:0>
補足
irb
起動時に --noreadline
というオプションをつけることで回避することができます。
$ irb --noreadline irb(main):001:0> a = "こんにちは!" => "こんにちは!" irb(main):002:0> a => "こんにちは!" irb(main):003:0> exit