IRB转义UTF字符

时间:2016-05-27 09:29:46

标签: ruby irb

我正在使用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版本不会影响它。

我之前的笔记本电脑上没有这个问题,它的配置几乎相同。这是怎么回事?

1 个答案:

答案 0 :(得分:3)

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

首先使用readline安装brew

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时,this answer可能对您有所帮助。