2012-09-29 53 views
34

Por ejemplo, mi terminal hace esto:¿Por qué mi terminal no produce caracteres Unicode correctamente?

$ echo -e "\xE2\x98\xA0" 
��� 

espero que haga lo siguiente:

$ echo -e "\xE2\x98\xA0" 
☠ 

¿Por qué? ¿Cómo hago para que mi terminal emita los símbolos Unicode apropiados?

Estoy usando la Terminal de Gnome 3 en Arch Linux.

La salida de locale muestra:

LANG=C 
LC_CTYPE="C" 
LC_NUMERIC="C" 
LC_TIME="C" 
LC_COLLATE="C" 
LC_MONETARY="C" 
LC_MESSAGES="C" 
LC_PAPER="C" 
LC_NAME="C" 
LC_ADDRESS="C" 
LC_TELEPHONE="C" 
LC_MEASUREMENT="C" 
LC_IDENTIFICATION="C" 
LC_ALL= 
+0

qué sistema operativo está utilizando? Para OS X, pruebe: Terminal -> Preferencias -> Avanzado -> Char. Codificación: UTF-8 – by0

+0

Además de op sys, también especifique qué programa de emulador de terminal utiliza (por ejemplo, gnome-terminal, xterm u otros listados en [¿Cuál es el mejor emulador de terminal de Linux?] (Http://superuser.com/) questions/80506)), y qué codificación de caracteres (por ejemplo, Unicode UTF-8) y fuente está seleccionada. En mi sistema ubuntu 12.04 linux con gnome-terminal y UTF-8 y Monospace Bold, el cráneo y las tibias cruzadas parecen estar bien. –

+0

También estoy usando Gnome Terminal ... Entonces, ¿dónde puedo cambiar esa configuración? Hmmmm ... Me pregunto si la cara que ejecuta 'locale' muestra' LANG = C' es el problema ... hmmmmm. – trusktr

Respuesta

7

lo he descubierto. Tenía que asegurarme de configurar LANGUAGE="en_US.UTF-8" en /etc/rc.conf y LANG="en_US.UTF-8" en /etc/locale.conf, luego cerrar la sesión y volver a iniciar sesión y funcionó. Mi terminal muestra unicode correctamente ahora.

+9

No funcionó para mí, aunque mi configuración regional ya es correcta. –

+3

Todo el mundo se mudará a systemd en estos días. Si está usando systemd, usar rc.conf no hará nada. – trusktr

+0

@trusktr No hay rc.conf! ¡Solo un rc.local! –

8

En caso de que no pueda cambiar los archivos /etc/*, puede establecer manualmente el menú gnome-terminal | Set Character Encoding-Unicode(Utf-8)

+4

Y si puedo cambiar/etc/*, ¿qué debo hacer ahora? –

2

He actualizado mi local con el siguiente comando:

sudo update-locale LANG=en_US.UTF-8 LANGUAGE=en.UTF-8 

entonces reiniciado:

sudo reboot 
Cuestiones relacionadas