Bagaimana cara mengatur LANG di lokal, meskipun di / etc / default / locale di ubuntu untuk dukungan unicode?

8

Saya jalankan Ubuntu 12.04, saya tidak bisa mengatur lokal ke en_US.utf8. Saya mengatur LANGdengan mengkonfigurasi /etc/default/localeseperti yang dijelaskan di sini .

$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

Tapi itu tidak berhasil, seperti yang Anda lihat di atas. Bagaimana cara saya mengatur LANGvariabel ini en_US.utf8?

Alasan saya bertanya adalah, ketika saya menjalankan echo -e "\x03\bb", saya mendapatkan unicode greek letter lambda symboltampilan yang benar, tetapi masalah saya adalah dengan emacs. Dalam emacs, saya tidak dapat menampilkan simbol unicode, mis .: C-x 8 RET 03bboutput \u03bb, bukan a greek letter lambda symbol. Saya pikir masalahnya adalah pengaturan lokal ini, tetapi saya tidak dapat mengaturnya.

Sunting : Saya pikir masalahnya sudah diperbaiki.

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

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

Solusi bagi saya adalah, saya menggunakan mintty untuk ssh ke Ubuntu 12.04 Server Edition, jadi saya harus mengkonfigurasi ~/.pam_environmentdan ~/.etc/ssh_config, dan ~/bashrc. Tapi masalah saya yang sebenarnya dengan emacs bukan tentang konfigurasi ubuntu ini, jadi saya tidak tahu untuk apa LANGkonfigurasi variabel ini digunakan atau jika saya mengaturnya untuk memperbaiki nilai.

Sunting 2: Berikut adalah langkah-langkah yang telah saya ambil untuk menyelesaikan ini, mengikuti saran ansivirus dari saluran irc #ubuntu:

Tambahkan ini ke ~/.bash_profile

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

Tambahkan ini ke ~/.pam_environment(jadi ini pasti bermasalah)

LANG=en_US
LANGUAGE=en_US

Tambahkan ini ke /etc/ssh/sshd_config

UsePAM yes

Beri komentar di sini /etc/ssh/ssh_config

#   SendEnv LANG LC_*
pengguna3995789
sumber
Apa output dari su $USER -c 'env; echo ==; locale' | egrep '==|LANG'? Apakah Anda menggunakan lingkungan GUI default (Persatuan), jika bukan apa yang Anda gunakan, dan manajer tampilan apa?
Gilles 'SANGAT berhenti menjadi jahat'
Apakah LANGada saat Anda menjalankan sutetapi tidak saat Anda masuk melalui SSH? Apa yang kamu ubah? Perhatikan bahwa en_USini bukan lokal Unicode.
Gilles 'SANGAT berhenti menjadi jahat'
@Gilles, tolong lihat edit2 saya. Setelah mengambil langkah-langkah itu sekarang LANG adalah semacam hadiah, saya pikir, tetapi saya tidak tahu apa pengaruhnya, dan saya tidak peduli karena emacs diperbaiki dan saya dapat melihat karakter unicode baik-baik saja, saya akan sangat menghargai penjelasan tentang apa variabel-variabel ini berarti dan apa pengaruhnya, terima kasih.
user3995789
Juga perhatikan bahwa ini tidak memperbaiki masalah emacs saya, itu adalah masalah emacs.
user3995789
1
Mungkin terkait dengan: Ejaan yang benar untuk lokal adalah AFAIK en_US.UTF-8, bukan .utf8
Jan Henke

Jawaban:

1

Coba instal ulang locales

apt-get install --reinstall locales

Baca lebih lanjut di sini .

Володимир Вонс
sumber