2012-04-30 31 views
12

Tôi đang gặp phải hành vi rất lạ trong IRB của Ruby 1.9.3 với Mac OS 10.7.3 Khi tôi cố gắng nhập Umlaut, nó được thoát trong dấu nhắc và trông như thế này (tôi bước vào "ü" trên bàn phím)Không thể nhập Umlauts trong Ruby 1.9.3 IRB

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

gì siêu lạ này là:

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

Tất nhiên, nhân vật không được hiển thị hoặc là:

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

Có ai biết điều gì đang diễn ra ở đây hay cách khắc phục điều này?

+0

đầu ra của 'puts __ENCODING__' –

+0

'IRB (chính) là gì: 001: 0> __ENCODING__ => # < Mã hóa: UTF-8> ' – Jan

Trả lời

6

Victor Moroz không khá cho câu trả lời dứt khoát nhưng liên kết của ông dẫn tôi đến một giải pháp (thx!):

tôi quên đề cập đến:

Điều mà tôi đã làm để giải quyết vấn đề này trong trường hợp của mình là biên dịch lại, lần này sẽ chuyển sang bản dịch mới hơn n của readline (6.2.2 trong trường hợp của tôi) mà tôi đã cài đặt với homebrew.

Các bước phải mất là:

$ 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

Fwiw, một lệnh đơn giản hơn được hiển thị tại 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 cài đặt 1.9.3-p327 – Turadg

1

này có thể giúp http://henrik.nyh.se/2008/03/irb-readline

CẬP NHẬT Trong thực tế trên Mac của tôi, tôi không có vấn đề với phiên bản cổng của Ruby, nhưng ban đầu phiên bản Mac OS không có vấn đề này (không bao giờ sử dụng mà một). Vì vậy, cách dễ nhất có lẽ chỉ là cài đặt Ruby từ các cổng.

+0

Xin lỗi quên đề cập đến, tôi đã cài đặt ruby ​​đó bằng ruby-build. – Jan

5

Tôi chạy qua vấn đề này là tốt, nhưng Ruby của tôi được xây dựng với RVM hơn ruby-xây dựng. Trước đây tôi cũng đã sử dụng Homebrew trên Mountain Lion để chạy các trình cài đặt gói khác, và trong số đó có Readline 6.2.5 hoặc một cái gì đó tương tự. Điều này hóa ra là nguyên nhân của vấn đề này đối với tôi. Vì vậy, đây là việc sửa chữa:

Từ the RVM site:

Nếu bạn có một lỗi khi biên dịch liên quan đến readline, bạn có thể cần phải cố gắng cài đặt với các thủ tục quy định dưới đây.

$ RVM pkg cài đặt readline

$ RVM cài đặt lại 1.9.2 --with-readline-dir = $ rvm_path/usr

Lưu ý rằng lỗi này xảy ra thường xuyên nhất khi có một MacPorts, Fink, hoặc Homebrew cài đặt readline trên hệ thống của bạn.

Hy vọng điều này sẽ giúp người khác!

+0

rất hữu ích. Cảm ơn – Dimitris

+0

Đẹp - đã làm việc với 1.9.3 p327 và bản vá chim ưng: rvm cài đặt lại ruby-1.9.3-p327-turbo - with-readline-dir = $ rvm_path/usr –

0

lệnh này giải quyết nó cho tôi:

brew install readline 
RUBY_CONFIGURE_OPTS=--with-readline-dir="$(brew --prefix readline)" rbenv install 1.9.3-p286 

nguồn: https://github.com/rbenv/ruby-build/wiki

Các vấn đề liên quan