IRB转义UTF字符

我使用OS-X(10.10.5)和rbenv(1.0.0)Ruby(2.2.4p230)和Fish Shell(2.2.0)。

当我在irb键入非ASCII字符时,它们会自动转义。

 max@MaxBook ~/p/sandbox> echo "Ö" Ö max@MaxBook ~/p/sandbox> irb irb(main):001:0> \U+FFC3\U+FFB6 

我虽然起初这可能是shell或我的终端设置的问题,但它只发生在IRB中。 更改shell或ruby版本不会影响它。

我以前的笔记本电脑没有这个问题,它的配置几乎相同。 这里发生了什么?

您可以通过重新编译Ruby对readline (而不是默认的libedit )来启用IRB的unicode支持。

首先使用brew安装readline ,例如:

 brew install readline 

我使用rbenv来管理Ruby版本并使用以下行来安装Ruby版本:

 RUBY_CONFIGURE_OPTS=--with-readline-dir="$(brew --prefix readline)" rbenv install 2.3.1 

使用rvm它看起来像:

 rvm install 2.3.1 --with-readline-dir=$rvm_path/usr 

或者当您可能想要从源代码重新编译Ruby时, 这个答案可能会对您有所帮助。