Saya telah menyiapkan server Ubuntu 16.04 baru, tetapi ketika saya mencoba mengubah pengaturan lokal secara permanen, ia gagal dan kembali ke lokal POSIX.
Mengetik locale
menghasilkan sebagai berikut:
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=
Sepengetahuan saya, ini berarti bahwa tidak ada lokal telah ditetapkan sama sekali, karena dokumentasi menyatakan POSIX adalah " mundur, pengkodean ASCII, sama dengan C ".
Untuk memastikan lokasi de_AT.utf8
dan en_US.utf8
hadir di sistem saya, saya berlari locale -a
, yang menghasilkan:
C
C.UTF-8
POSIX
de_AT.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
Harap perhatikan inkonsistensi dengan C.UTF-8
, tetapi de_AT.utf8
! Yang lebih mengkhawatirkan saya adalah bahwa POSIX adalah entri ketiga, sedangkan pada sistem kerja yang berbeda, ini adalah yang terakhir dari daftar.
Untuk mengubah bahasa saya ke en_US.utf8
, saya mengetik sudo update-locale LANG=en_US.utf8
. The locale
perintah masih menunjukkan lokal POSIX. Setelah keluar dan masuk baru, locale
masih menunjukkan lokal POSIX. Setelah reboot, locale
masih menunjukkan lokal POSIX.
Namun, ketika saya mengetik export LANG=en_US.utf8
, itu berfungsi sementara, tetapi hanya sampai keluar. Karena itu, saya cukup yakin bahwa lokal dihasilkan dengan benar.
Saya kehabisan ide. Saya mencoba meregenerasi semua lokal, tetapi sepertinya /etc/default/locale
hanya diabaikan.
Demi penyelesaian, /etc/default/locale
hanya berisi garisLANG=en_US.utf8
UPDATE: // Saya mencoba menjalankan sudo localectl set-locale LANG=en_US.UTF-8
, dan localectl
juga menunjukkan kepada saya bahwa itu mengatur lokal, tetapi bahkan setelah reboot, locale
masih menunjukkan POSIX dan karakter non-ASCII masih belum diterjemahkan dengan benar.
systemd
cara localectl set-locale LANG=C.UTF-8
:?
/etc/pam.d
dalamnya, itu akan berfungsi. Tetapi sebagai peretasan untuk saat ini, Anda mungkin ingin membuat /etc/profile.d/mylocalesetting.sh
dan menambahkan baris export LANG=en_US.UTF-8
.
/etc/default/locale
dibaca oleh PAM. Apakah Anda mungkin menonaktifkan PAM?