¿Puede un perfil de Terminal Gnome usar UTF-8 de forma predeterminada?

19

Estoy en un sistema Ubuntu (creo). Yo no tengo raíz, por lo que no puedo cambiar la configuración regional. Quiero hacer que mi perfil de terminal predeterminado use UTF-8 por defecto. Debería haber una manera de hacer esto, ya sea en el .gconf/apps/gnome-terminal/directorio en alguna parte, o en una variable de entorno, o algo así. Sin embargo, parece que no puedo encontrarlo.

Editar con más detalles:

En una terminal, tengo:

grid-unv55$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
grid-unv55$ gnome-terminal

Cuando intento más un documento UTF en esa nueva terminal, obtengo:

\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd
\noise:bgspeech \ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd

Que aparece en mi pantalla como puntos. (los uffds estaban cortados y pegados. Dejé el "\ noise: bgspeech" allí para que pudieras ver ese ascii cortado y pegado correctamente)

Brian Postow
fuente

Respuestas:

12

Creo que la voluntad gnome-terminal sólo trabajamos con el UTF-8 está activada en la cáscara, así que todo lo que necesita hacer es permitir que . Poner

export LANG=en_US.UTF-8

adentro ~/.bashrcy ahí vas


EDITAR:

Bien, entonces, la respuesta es que actualmente no puedes configurar esto . Terminal Gnome sigue la configuración LANG del entorno actual y utiliza la codificación para eso como predeterminada. Por lo tanto, debe hacer que LANG contenga UTF-8 antes de que se inicie gnome-terminal. Establecer esto ~/.bashrcdebería hacerlo, solo tendrá que cerrar sesión e iniciar sesión nuevamente.

(Tenga en cuenta que en realidad es mejor poner esto ~/.bash_profilepara que pueda anularlo para subcapas, pero no estoy seguro de que bash se ejecute necesariamente como un shell de inicio de sesión como parte de la configuración del entorno Gnome. Vale la pena probarlo ...)

mattdm
fuente
1
no parece funcionar
Brian Postow
Hmm ¿Qué es $ LANG configurado por defecto? ¿Poner eso en tu bashrc hace que cambie?
mattdm
C, y ponerlo en el bashrc lo hizo cambiar. Por supuesto, no me desconecté y volví a iniciar sesión, pero comencé un nuevo terminal, y comenzó con UTF en LANG (y la configuración regional también está configurada con UTF) pero el terminal todavía no muestra japonés ...
Brian Postow
1
Antes, solo se configuraba en el shell dentro de gnome-terminal. Ahora, se está configurando en el entorno en el que se ejecuta gnome-terminal.
mattdm
2
Bajo Ubuntu 10.04, puede establecer las variables de entorno para toda la sesión desde ~/.profile- No~/.bashrc , y no ~/.bash_profilecualquiera .
Gilles 'SO- deja de ser malvado'
9

Puede establecer la configuración regional gnome-terminalcon el siguiente comando donde Defaultestá el nombre del perfil.

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8
Michael Mior
fuente
Esto funcionó para mí. Pero no era necesaria después de cambiar LANG=en_US.UTF-8en .bashrcy reiniciar
Antonios Hadjigeorgalis
¡Funcionó muy bien para mí!
Josh M.
7

Tenía un problema similar, y cuando se pone LANGen .bash_profileno hacer el truco, descubrí que en Gnome, la configuración regional predeterminada se puede ajustar al comienzo de una sesión desde la pantalla de inicio de sesión GDM. Esto se puede hacer sin acceso de root.

phreeza
fuente
3

Acabo de registrarme menu->terminal->set character encodinges utf-8

La terminal y bash no son lo mismo.

Comenzaría haciendo cat utf-8-file(cat y bash pasarán este archivo sin cambios a la terminal, (bueno, en realidad a stty, stty convertirá newline a carrage return, newline, etc.)) si esto muestra el archivo correctamente, entonces gnome-terminal está configurado. (Esto hasta ahora es todo lo que he hecho, ya que uso utf-8 en inglés; ya estaba configurado en Ubuntu 10.10 y Debian 6 para mí). Entonces, solo para configurar bash, etc.

Relectura ~ / .bashrc

Si edita ~/.bashrcdebe volver a leerlo . ~/.bashrc(o iniciar un nuevo shell) (no olvide el punto)

ctrl-alt-delor
fuente
1
Cuando cambio manualmente la codificación de caracteres a utf-8, ahí es donde lo hago, pero cuando inicio un nuevo terminal de gnomo, incluso desde un terminal que tiene la configuración regional correcta, la codificación sigue siendo ascii. Agregaré más detalles a la pregunta.
Brian Postow
3

Tuve un problema ahora que solucioné que puede ser relevante para los recién llegados con versiones más nuevas de GNOME (y gnome-terminal):

Para cualquier codificación de texto que desee usar, el shell (por ejemplo, bash) y el emulador de terminal (por ejemplo, gnome-terminal) deben usar la misma codificación. Entonces, por ejemplo, si el shell usa en_US.utf8y el emulador de terminal usaen_US.ISO-8859-1 (aka latin1), entonces verá texto extraño en su terminal para cualquier programa con salida UTF-8.

Ahora, no puedo configurar la codificación al iniciar sesión, como he visto sugerido sería posible. Esto podría deberse al hecho de que tenemos una versión anterior de GDM aquí en el trabajo. Por eso he necesitado una solución diferente.

De todos modos, GNOME 3 no parece originarse automáticamente .bashrcni .profileal iniciar sesión. Pero sí fuente.gnomerc , en la que puede colocar variables de entorno que se exportarán a programas GNOME (por lo que puedo decir).

Poner export LANG="en_US.utf8"en.gnomerc tanto se inicia gnome-terminal utilizando una codificación UTF-8 por defecto, cuando se inicia una nueva instancia. (Cambie su ubicación según sus necesidades).

¡Ojalá esto haya sido útil para alguien!

Víctor
fuente
-1

Como lo mencionaron otros usuarios, dile al shell con qué codificación estás usando

export LANG=en_US.UTF-8

Ponga esto en .bashrc y gnome-terminal debería recogerlo en el próximo inicio de sesión.

Establezca la codificación para gnome-terminal sobre la marcha: Barra de menú> Terminal> Establecer codificación de caracteres

Establezca la codificación predeterminada permanentemente: gconf-editor> Aplicaciones> gnome-terminal> Perfiles> Predeterminado> codificación> utf-8

Edward Falk
fuente
2
Esto no es del todo cierto. Para mí, tengo un archivo .profile y un archivo .bashrc. Mi shell de inicio de sesión es bash. gnome-terminal ignora la configuración de LANG en .bashrc si entra en conflicto con la configuración de LANG en .profile. Por lo tanto, LANG debe establecerse en ambos archivos.
Gary
Más o menos ... entiendo que bash usa .profile para shells de inicio de sesión, y .bashrc de lo contrario. En Linux, las nuevas ventanas de comandos usan .bashrc (en Mac, es .profile ). No conozco ninguna circunstancia en la que ambos se ejecuten automáticamente, pero es extremadamente común poner toda su configuración en una y luego llamarla desde la otra. Por lo general, .bashrc se ejecuta desde .profile (generalmente solo desde shells interactivos). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Edward Falk