如何在rails控制台(或irb)中输入多字节字符?

7

大家好。我正在使用Rails开发一个中文应用程序。现在我想在Rails控制台中输入一些中文字符,但无法实现,即使在irb中也不行。

有没有谁有解决这个问题的经验?非常感谢您的帮助!


你使用的 Ruby 版本是什么? - Aaron Scruggs
@aaron:我正在使用ruby-1.8.7-p302和rails 3.0.0。 - Jimmy Huang
哪个操作系统/终端?这可能是其中的一部分。 - Josh Lee
@jleedev:我正在使用 Mac OS X Snow Leopard,并且默认的终端。 - Jimmy Huang
3个回答

5

根据@Jimmy-Huang的回答,在Mac Leopard上,我使用rvm和ruby 1.9.2遵循以下步骤:

rvm package install readline
rvm remove 1.9.2
rvm install 1.9.2 --with-readline-dir=$rvm_path/usr

这导致了一些错误,特别是在尝试bundle install时:

未初始化常量Gem :: SilentUI

原来这是由于较旧版本的bundler引起的,可以通过以下方式解决:

gem install bundler

2
我找到了适合我的解决方案,需要重新编译readline。现在我可以输入非ASCII字符了!
因为我正在使用rvm,所以我找到了这篇文章来教你如何在rvm下重新编译readline。http://rvm.beginrescueend.com/packages/readline/ 对于不使用rvm的人,也许你可以参考这篇文章并尝试一下:http://henrik.nyh.se/2008/03/irb-readline 顺便说一句,ruby-1.9.2 irb已经支持非ASCII输入了。

我也一直在思考这个问题。我没有意识到1.9.2本地支持它,所以我尝试了一下,但仍然无法输入非ASCII字符。后来我意识到是因为我将终端设置为使用选项键作为元键。我关闭了它,然后我就可以输入非ASCII字符了,但这破坏了左右箭头键。你找到同时使用非ASCII字符和箭头键的解决方案了吗? - Jimmy
@Cuadra: 我并没有开启“将 Option 键用作 Meta 键”的选项,但仍然可以输入非 ASCII 字符。我不知道为什么 Meta 键会阻止你输入。你能详细解释一下吗? - Jimmy Huang
请注意,在不使用readline构建选项的情况下,1.9.2中的irb仍然存在问题。 - Julik

1

谢谢@aaron。您提供了一种输入中文字符的方法,现在我可以使用pack方法构建一些随机的中文字。但是如果我想输入特定的单词,我必须知道每个字符的ASCII码。如果我能直接在控制台中输入字符,那就更棒了。 - Jimmy Huang

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