Tôi chạy Ubuntu 12.04
, tôi không thể đặt miền địa phương en_US.utf8
. Tôi thiết lập LANG
bằng cách cấu hình /etc/default/locale
như mô tả ở đây .
$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
Nhưng nó không hoạt động, như bạn có thể thấy ở trên. Làm cách nào để đặt LANG
biến này thành en_US.utf8
?
Lý do tôi hỏi là, khi tôi chạy echo -e "\x03\bb"
, tôi nhận được unicode greek letter lambda symbol
hiển thị chính xác, nhưng vấn đề của tôi là với emacs. Trong các emacs, tôi không thể hiển thị các ký hiệu unicode, ví dụ: C-x 8 RET 03bb
đầu ra \u03bb
, thay vì a greek letter lambda symbol
. Tôi nghĩ vấn đề là do các cài đặt ngôn ngữ này, nhưng tôi không thể đặt chúng.
Chỉnh sửa : Tôi nghĩ rằng vấn đề đã được khắc phục.
$su $USER -c 'env; echo ==; locale' | egrep '==|LANG'
LANG=en_US
LANGUAGE=en_US
==
LANG=en_US
LANGUAGE=en_US
Giải pháp cho tôi là, tôi đã sử dụng mintty để ssh vào Ubuntu 12.04
Server Edition
, vì vậy tôi phải cấu hình ~/.pam_environment
và
~/.etc/ssh_config
, và ~/bashrc
. Nhưng vấn đề thực sự của tôi với emacs không phải là về cấu hình ubfox này, vì vậy tôi không biết
LANG
cấu hình biến này được sử dụng để làm gì hoặc nếu tôi đặt nó thành giá trị chính xác.
Chỉnh sửa 2: Dưới đây là các bước tôi đã thực hiện để giải quyết vấn đề này, theo các đề xuất của ansillin từ kênh irub #ubfox:
Thêm cái này vào ~/.bash_profile
export LANGUAGE="en"
export LANG="C"
export LC_MESSAGES="C"
Thêm cái này vào ~/.pam_environment
(vì vậy cái này phải có vấn đề)
LANG=en_US
LANGUAGE=en_US
Thêm cái này vào /etc/ssh/sshd_config
UsePAM yes
Nhận xét này trong /etc/ssh/ssh_config
# SendEnv LANG LC_*
LANG
mặt khi bạn chạy su
nhưng không phải khi bạn đăng nhập qua SSH? Bạn đã thay đổi điều gì? Lưu ý rằng đó en_US
không phải là ngôn ngữ Unicode.
su $USER -c 'env; echo ==; locale' | egrep '==|LANG'
gì? Bạn có đang sử dụng môi trường GUI mặc định (Unity) không, nếu không bạn đang sử dụng cái gì và trình quản lý hiển thị nào?