¿Cómo configurar LANG en locale, a pesar de que está en / etc / default / locale en ubuntu para soporte unicode?


8

Corro Ubuntu 12.04, no puedo establecer la configuración regional en en_US.utf8. Lo configuré LANGconfigurando /etc/default/localecomo se describe aquí .

$cat /etc/default/locale
LANG=en_US.utf8
$locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=POSIX

Pero no funciona, como puedes ver arriba. ¿Cómo configuro esta LANGvariable en_US.utf8?

La razón por la que pregunto es que, cuando ejecuto echo -e "\x03\bb", me unicode greek letter lambda symbolaparece correctamente, pero mi problema es con emacs. En los emacs, no puedo mostrar símbolos Unicode, por ejemplo: C-x 8 RET 03bbsalidas \u03bb, en lugar de una greek letter lambda symbol. Pensé que el problema es con estas configuraciones regionales, pero no puedo configurarlas.

Editar : creo que el problema está solucionado.

$su $USER -c 'env; echo ==; locale' | egrep '==|LANG'

LANG=en_US
LANGUAGE=en_US
==
LANG=en_US
LANGUAGE=en_US

La solución para mí fue que estaba usando mintty para ingresar Ubuntu 12.04 Server Edition, así que tuve que configurar ~/.pam_environmenty ~/.etc/ssh_config, y ~/bashrc. Pero mi problema real con emacs no era sobre esta configuración de ubuntu, así que no tengo idea de para qué LANGse usa esta configuración variable o si la configuré para corregir los valores.

Edición 2: Estos son los pasos que he tomado para resolver esto, siguiendo las sugerencias de ansivirus del canal #ubuntu irc:

Agregue esto a ~/.bash_profile

export LANGUAGE="en"
export LANG="C"
export LC_MESSAGES="C"

Agregue esto a ~/.pam_environment(entonces esto debe ser problemático)

LANG=en_US
LANGUAGE=en_US

Agregue esto a /etc/ssh/sshd_config

UsePAM yes

Comenta esto en /etc/ssh/ssh_config

#   SendEnv LANG LC_*

¿Cuál es la salida de su $USER -c 'env; echo ==; locale' | egrep '==|LANG'? ¿Está utilizando el entorno de GUI predeterminado (Unity), si no qué está utilizando y qué administrador de pantalla?
Gilles 'SO- deja de ser malvado'

¿Está LANGpresente cuando ejecuta supero no cuando inicia sesión a través de SSH? Que cambiaste Tenga en cuenta que en_USno es un entorno local Unicode.
Gilles 'SO- deja de ser malvado'

@Gilles, mira mi edit2 por favor. Después de dar esos pasos, LANG está presente, creo, pero no sé qué efecto tiene, y no me importa porque emacs está arreglado y puedo ver bien los caracteres Unicode, agradecería una explicación de qué Sin embargo, estas variables significan y lo que afectan, gracias.
user3995789

También tenga en cuenta que esto no solucionó mi problema de emacs, después de todo, era un problema de emacs.
user3995789

1
Tal vez relacionado con: La ortografía correcta para la configuración regional es AFAIK en_US.UTF-8, no .utf8
Jan Henke

Respuestas:


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.