2011-04-10 18 views
5

Resumen del muro de texto a continuación: ¿Cómo puedo mostrar caracteres acentuados (para que funcionen a través de puts, etc.) en Ruby?Ruby y Caracteres Acentuados


Hello! Estoy escribiendo un programa para mi clase que mostrará algunas oraciones en español. Cuando trato de usar caracteres acentuados en Ruby, no se muestran correctamente (en la ventana de salida de NetBeans (que muestra caracteres acentuados en Java fino) o en el símbolo del sistema).

Al principio, parte de mi código ni siquiera se ejecutaba porque los caracteres acentuados de mis matrices arrojaban el interruptor de Ruby (¿supongo?). Recibí errores como que Ruby esperaba un soporte de cierre.

Pero hice algunas investigaciones, y encontré una solución, añadir la siguiente línea de código al principio de mi archivo de Ruby:

# coding: utf-8

En NetBeans, mi programa se ha ejecutado independientemente de esta línea. Pero necesitaba agregar esta línea para que mi programa se ejecutara correctamente en el símbolo del sistema. (No sé por qué.)

Todavía estoy teniendo problemas para mostrar los caracteres en la pantalla. Una palabra como "ser" se mostrará en la ventana de salida de NetBeans como "seré". Y en el símbolo del sistema, dibuja pequeños caracteres de tubería (que no sé cómo escribir).

Haciendo un poco más investigación, oí sobre: ​​

$KCODE = 'UTF-8'

pero no estoy teniendo suerte con esto.


Estoy usando Ruby 1.8 y 1.9 (voy y vengo entre diferentes máquinas).

Gracias, Derek

+0

Por cierto, es '# codificación: utf-8'. y que sistema operativo estas usando? –

+0

Parece que funciona de la misma manera. Estoy ejecutando OSX y Windows 7. Lo intenté en ambos; todavía no he resuelto la respuesta. – Derek

Respuesta

2

un símbolo del sistema en Windows 7 tiene fuentes de trama por defecto. Y no es compatible con Unicode. Al principio, debe cambiar la fuente cmd a Lucida Console o Consolas. Y luego cambie la página de códigos del símbolo del sistema con chcp 65001. Puede hacerlo manualmente o agregar esta línea a su programa ruby:

# encoding: utf-8 
`chcp 65001` #change cmd encoding to unicode 
puts 'será test ' 
+0

Lo que no entiendo es: la consola de salida de NetBeans mostrará caracteres acentuados si trabajo en Java. En Ruby, muestra caracteres incorrectos; incluso con tu código – Derek

+0

Además, cuando cambio la fuente en el cmd, muestra el carácter correcto ahora, pero con algunas rarezas. Por ejemplo: se mostrará un signo de interrogación en un recuadro inmediatamente después del á, y parece que los caracteres que tienen una letra después del acento (por ejemplo, serás) se muestran con esa letra copiada dos veces (seráss). – Derek

+0

Lo siento, no sé nada sobre NetBeans. Con respecto al cmd de windows, he notado esta rareza también. Hay algún pequeño truco: si ingresas un espacio después de tu palabra ('puts 'será'), todo estará bien. Lo siento, no sé por qué sucede esto, pero puede ser que ayude. –

Cuestiones relacionadas