无法在Ruby 1.9.3 IRB中输入umlauts

12

我在Mac OS 10.7.3上使用Ruby 1.9.3的IRB时遇到了非常奇怪的行为。当我尝试输入一个Umlaut时,它在提示符中被转义并且看起来像这样(我用键盘输入了"ü")。

irb(main):001:0> "\U+FFC3\U+FFBC"

非常奇怪的是这个:

irb(main):001:0> "\U+FFC3\U+FFBC".length
=> 0
当然,该字符也不会被显示:
irb(main):001:0> "\U+FFC3\U+FFBC"
=> ""

有人知道这里发生了什么或者如何修复吗?


puts __ENCODING__ 的输出是什么? - Dan McClain
irb(main):001:0> __ENCODING__ => #<Encoding:UTF-8> - Jan
4个回答

6

Victor Moroz没有给出明确的答案,但他的链接指向了一个解决方案(谢谢!):

我忘记提到:

然后,在我的情况下,我所做的是重新编译,这次将ruby指向我用homebrew安装的更高版本的readline(我的版本是6.2.2)。

所需步骤如下:

$ brew install readline
$ export CPPFLAGS=-I/usr/local/Cellar/readline/6.2.2/include
$ export LDFLAGS=-L/usr/local/Cellar/readline/6.2.2/lib/
$ curl https://raw.github.com/gist/1688857/rbenv.sh | sh && rbenv global 1.9.3-p125-perf

2
顺便说一句,更简单的命令在https://github.com/guard/guard/wiki/Add-proper-Readline-support-to-Ruby-on-Mac-OS-X上显示:CONFIGURE_OPTS = --with-readline-dir = brew --prefix readline rbenv install 1.9.3-p327 - Turadg

5
我也遇到了这个问题,但我的Ruby是使用rvm构建的,而不是ruby-build。我之前在Mountain Lion上使用Homebrew运行其他软件包安装程序,其中包括Readline 6.2.5或类似版本。结果发现这是我的问题所在。所以这是解决方法:
RVM网站
如果编译时出现有关readline的错误,您可能需要尝试按照下面定义的过程进行安装。 $ rvm pkg install readline $ rvm reinstall 1.9.2 --with-readline-dir=$rvm_path/usr 请注意,在系统上安装MacPorts、Fink或Homebrew时,此错误最常见。
希望这能帮助其他人!

不错 - 使用1.9.3 p327和falcon补丁:rvm reinstall ruby-1.9.3-p327-turbo --with-readline-dir=$rvm_path/usr。 - Rich Sutton

1

这可能会有所帮助 http://henrik.nyh.se/2008/03/irb-readline

更新 实际上,在我的 Mac 上,我使用端口版本的 Ruby 没有问题,但原始的 Mac OS 版本确实存在这个问题(从未使用过那个)。因此,最简单的方法可能就是从端口安装 Ruby。


抱歉,我忘了提到,我是使用ruby-build安装的那个Ruby。 - Jan

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接