Come impostare LANG in locale, nonostante sia in / etc / default / locale in Ubuntu per il supporto Unicode?


8

Corro Ubuntu 12.04, non riesco a impostare le impostazioni internazionali su en_US.utf8. Ho impostato LANGconfigurando /etc/default/localecome descritto qui .

$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

Ma non funziona, come puoi vedere sopra. Come imposto questa LANGvariabile su en_US.utf8?

Il motivo che sto chiedendo è che, quando corro echo -e "\x03\bb", unicode greek letter lambda symbolvisualizzo correttamente, ma il mio problema è con emacs. In emacs, non riesco a visualizzare simboli unicode, ad esempio: C-x 8 RET 03bboutput \u03bb, anziché a greek letter lambda symbol. Ho pensato che il problema riguardasse queste impostazioni locali, ma non riesco a configurarle.

Modifica : penso che il problema sia stato risolto.

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

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

La soluzione per me era che stavo usando mintty per ssh Ubuntu 12.04 Server Edition, quindi ho dovuto configurare ~/.pam_environmente ~/.etc/ssh_config, e ~/bashrc. Ma il mio vero problema con emacs non riguardava questa configurazione di Ubuntu, quindi non ho idea di cosa LANGvenga utilizzata questa configurazione variabile o se la imposto su valori corretti.

Modifica 2: Ecco i passaggi che ho seguito per risolverlo, seguendo i suggerimenti di ansivirus dal canale irub #ubuntu:

Aggiungi questo a ~/.bash_profile

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

Aggiungi questo a ~/.pam_environment(quindi questo deve essere problematico)

LANG=en_US
LANGUAGE=en_US

Aggiungi questo a /etc/ssh/sshd_config

UsePAM yes

Commenta questo in /etc/ssh/ssh_config

#   SendEnv LANG LC_*

Qual è l'output di su $USER -c 'env; echo ==; locale' | egrep '==|LANG'? Stai utilizzando l'ambiente GUI predefinito (Unity), se non cosa stai usando, e quale display manager?
Gilles 'SO- smetti di essere malvagio'

È LANGpresente quando si esegue suma non quando si accede tramite SSH allora? Che cosa hai cambiato? Si noti che en_USnon è una locale Unicode.
Gilles 'SO- smetti di essere malvagio'

@Gilles, guarda il mio edit2 per favore. Dopo aver fatto questi passi ora LANG è un po 'presente, penso, ma non so che effetto abbia, e non mi interessa perché Emacs è stato risolto e posso vedere bene i caratteri Unicode, apprezzerei una spiegazione di cosa queste variabili significano e ciò che influenzano, grazie.
user3995789

Si noti inoltre che questi non hanno risolto il mio problema di emacs, dopo tutto era un problema di emacs.
user3995789

1
Forse correlato a: l'ortografia corretta per la locale è AFAIK en_US.UTF-8, non .utf8
Jan Henke

Risposte:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.