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_*

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:


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.