我想在我的irb中输入德国的变形金刚但得到一个奇怪的错误.我可以输入任何äöü
没有问题的字符,但每个都会ÄÖÜß
导致以下错误:
$ irb
ruby-1.9.2-p136 :001 > ? # here I entered Ü but it displays only ?
/Users/lorenz/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/ruby-lex.rb:728:in
`block in lex_int2': invalid byte sequence in UTF-8 (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
我看过很多关于Ruby,rvm和UTF-8的SO问题,但都没有帮助.大多数都绑定到rails或数据库配置.我特意检查了以下内容:
语言环境设置正确
$ locale
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
Run Code Online (Sandbox Code Playgroud)
Terminal.app设置为Unicode(UTF-8)并正确设置Encoding.default_external:
$ irb
ruby-1.9.2-p136 :001 > Encoding.default_external
=> #<Encoding:UTF-8>
Run Code Online (Sandbox Code Playgroud)
为什么在Ruby中这仍然很难?
mvim
已安装在其中,/usr/local/bin/
但不能用作EDITOR
或VISUAL
:
$ mvim -f # works as expected
$ EDITOR="/usr/local/bin/mvim -f" crontab -e
crontab: /usr/local/bin/mvim -f: No such file or directory
crontab: "/usr/local/bin/mvim -f" exited with status 1
Run Code Online (Sandbox Code Playgroud)
我尝试使用单引号并使用VISUAL
代替EDITOR
。结果相同。我也尝试使用谷歌搜索,但显然该-f
标志对其他所有人都很好。
我使用Mac OS 10.6.6和zsh,但问题在bash中相同。