2011-01-04 15 views
7

ragazzi. Sto sviluppando un'applicazione cinese con binari. Ora voglio inserire alcuni caratteri cinesi nella console di rails ma non posso farlo, né in irb.Come posso inserire caratteri multibyte nella console di rails (o irb)?

Qualcuno che ha l'esperienza per risolvere questo problema? Apprezzerei il tuo aiuto!

+0

Quale versione di ruby ​​stai usando? –

+0

@aaron: Sto usando ruby-1.8.7-p302 e rails 3.0.0 –

+0

Quale sistema operativo/terminale? Questo potrebbe farne parte. –

risposta

2

Ho trovato la soluzione per me, è necessario ricomporre la readline. E ora posso inserire caratteri non ASCII!

Perché sto usando rvm, quindi ho trovato questo articolo per insegnarvi come ricompilare readline sotto rvm. http://rvm.beginrescueend.com/packages/readline/

E per qualcuno che non utilizza rvm, forse si può seguire questo post e avere una prova: http://henrik.nyh.se/2008/03/irb-readline

A proposito, rubino 1.9.2 IRB supporta già inputing non ASCII.

+0

Mi sono chiesto anche questo. Non mi rendevo conto che 1.9.2 lo supportava in modo nativo, quindi l'ho provato e non potevo ancora inserire caratteri non ASCII. Poi ho capito che è perché ho Terminal impostato per utilizzare la chiave di opzione come una meta chiave. L'ho spento e quindi ho potuto digitare caratteri non ASCII, ma ha rotto i tasti freccia sinistra e destra. Hai trovato una soluzione per utilizzare sia caratteri non ASCII sia i tasti freccia? –

+0

@Cuadra: Non accendo l '"usa la chiave di opzione come un meta chiave", ma è comunque possibile immettere caratteri non ASCII. Non so perché la meta chiave ti impedirà di inserirli. Puoi spiegarlo di più? –

+0

FYI senza le opzioni di creazione readline irb in 1.9.2 è ancora rotto – Julik

1

Partenza il metodo pack su array: http://ruby-doc.org/core-1.8.7/classes/Array.html#M000287

Penso che ci si vuole:

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

Ecco un interessante dibattito sul tema aveva con Matz:

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

+0

Grazie @aaron. Fornisci un modo per inserire caratteri cinesi, posso usare il metodo pack per costruire alcune parole cinesi casuali ora. Ma se voglio inserire una parola particolare, devo conoscere il codice ASCII di ogni personaggio. Se posso inserire caratteri direttamente in console, sarà più meraviglioso. –

+0

scusate, è tutto quello che ho ;-) –

5

Sulla base @ risposta di Jimmy-Huang, questi sono i passi che ho seguito su Mac Leopard utilizzando rvm e rubino 1.9.2:

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

che ha portato in alcuni errori, soprattutto quando si cerca bundle install:

inizializzata Gem costante :: SilentUI

si è scoperto che è a causa di una vecchia versione di fardellatrice e questo si libera di esso:

gem install bundler 
+0

usa 'rvm pkg installa readline' se rvm si lamenta – lulalala

Problemi correlati