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时, 这个答案可能会对您有所帮助。