2011-01-04 24 views
7

guys. Tôi đang phát triển một ứng dụng Trung Quốc với đường ray. Bây giờ tôi muốn nhập một số ký tự Trung Quốc trong giao diện điều khiển đường ray nhưng không thể làm điều đó, hoặc trong irb.Làm cách nào để nhập các ký tự nhiều byte trong bảng điều khiển đường ray (hoặc irb)?

Bất kỳ ai có kinh nghiệm để giải quyết vấn đề này? Tôi sẽ đánh giá cao sự giúp đỡ của bạn!

+0

Bạn đang sử dụng phiên bản ruby ​​nào? –

+0

@aaron: Tôi đang sử dụng ruby-1.8.7-p302 và đường ray 3.0.0 –

+0

Hệ điều hành/Thiết bị đầu cuối nào? Đó có thể là một phần của nó. –

Trả lời

2

Tôi đã tìm ra giải pháp cho mình, cần phải biên dịch lại dòng đọc. Và bây giờ tôi có thể nhập các ký tự không phải ASCII!

Vì tôi đang sử dụng rvm nên tôi tìm thấy bài viết này để hướng dẫn bạn cách biên dịch lại dòng dưới dạng rvm. http://rvm.beginrescueend.com/packages/readline/

Và đối với những người không sử dụng RVM, có thể bạn có thể làm theo bài này và có một thử: http://henrik.nyh.se/2008/03/irb-readline

Bằng cách này, ruby-1.9.2 IRB đã hỗ trợ phi ASCII inputing.

+0

Tôi đã tự hỏi về điều này là tốt. Tôi đã không nhận ra 1.9.2 hỗ trợ nó nguyên bản, vì vậy tôi đã thử nó và vẫn không thể nhập ký tự không phải ASCII. Sau đó, tôi nhận ra đó là vì tôi đã thiết lập Terminal để sử dụng phím tùy chọn làm khóa meta. Tôi tắt nó đi và sau đó tôi có thể gõ ký tự không phải ASCII, nhưng nó đã phá vỡ các phím mũi tên trái và phải. Bạn đã tìm thấy giải pháp để sử dụng cả hai ký tự không phải ASCII và các phím mũi tên? –

+0

@Cuadra: Tôi không bật 'sử dụng phím tùy chọn làm khóa meta', nhưng vẫn có thể nhập ký tự không phải ASCII. Tôi không biết tại sao khóa meta sẽ ngăn bạn nhập vào. Bạn có thể giải thích thêm? –

+0

FYI không có tùy chọn xây dựng readline irb trong 1.9.2 vẫn bị hỏng – Julik

1

Kiểm tra các phương pháp gói trên mảng: http://ruby-doc.org/core-1.8.7/classes/Array.html#M000287

Tôi nghĩ rằng bạn muốn:

[111 ,222, 333].pack(U*) 

Đây là một cuộc thảo luận thú vị về đề tài này đã có với Matz:

http://www.ruby-forum.com/topic/134919

+0

Cảm ơn bạn @aaron. Bạn cung cấp một cách để nhập ký tự Trung Quốc, tôi có thể sử dụng phương pháp gói để xây dựng một số từ Trung Quốc ngẫu nhiên ngay bây giờ. Nhưng nếu tôi muốn nhập một từ cụ thể, tôi phải biết mã ASCII của mỗi ký tự. Nếu tôi có thể nhập các ký tự trực tiếp trong bảng điều khiển, điều đó sẽ tuyệt vời hơn. –

+0

xin lỗi, đó là tất cả tôi đã nhận ;-) –

5

Dựa trên câu trả lời @ Jimmy-Huang, đây là những bước tôi tiếp trên Mac Leopard sử dụng RVM và ruby ​​1.9.2:

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

Đó dẫn đến một số sai sót, đặc biệt là khi cố gắng bundle install:

uninitialized Gem liên tục :: SilentUI

hóa ra đó là do phiên bản cũ của bundler và điều này được thoát khỏi nó:

gem install bundler 
+0

sử dụng 'rvm pkg install readline' nếu rvm than phiền – lulalala

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