Ich habe einen neuen Ubuntu 16.04-Server eingerichtet, aber wenn ich versuche, die Gebietsschemaeinstellungen dauerhaft zu ändern, schlägt dies fehl und kehrt zum POSIX-Gebietsschema zurück.
Die Eingabe locale
ergibt Folgendes:
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=
Meines Wissens bedeutet dies, dass überhaupt kein Gebietsschema festgelegt wurde, da in der Dokumentation angegeben ist , dass POSIX die " Fallback-ASCII-Codierung wie C " ist.
Um die Gegenden zu gewährleisten de_AT.utf8
und en_US.utf8
auf meinem System vorhanden waren, lief ich locale -a
, was ergab:
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
Bitte beachten Sie die Inkonsistenzen mit C.UTF-8
, aber de_AT.utf8
! Was mich weiter beunruhigt, ist, dass POSIX der dritte Eintrag ist, während es auf einem anderen funktionierenden System der letzte auf der Liste ist.
Um meine Sprache zu ändern en_US.utf8
, habe ich getippt sudo update-locale LANG=en_US.utf8
. Der locale
Befehl zeigte weiterhin das POSIX-Gebietsschema an. Nach einer Abmeldung und einer neuen Anmeldung wurde locale
weiterhin das POSIX-Gebietsschema angezeigt. Nach einem Neustart wurde locale
immer noch das POSIX-Gebietsschema angezeigt.
Wenn ich tippe export LANG=en_US.utf8
, funktioniert es jedoch vorübergehend, jedoch nur bis zur Abmeldung. Daher bin ich mir ziemlich sicher, dass die Gebietsschemas korrekt generiert wurden.
Ich habe keine Ideen mehr. Ich habe versucht, alle Gebietsschemas neu zu generieren, aber es sieht so aus, als würde /etc/default/locale
es einfach ignoriert.
/etc/default/locale
Enthält der Vollständigkeit halber nur die ZeileLANG=en_US.utf8
UPDATE: // Ich habe versucht, es auszuführen sudo localectl set-locale LANG=en_US.UTF-8
, und localectl
mir auch gezeigt, dass es das Gebietsschema festlegt, aber auch nach einem Neustart werden locale
immer noch POSIX- und Nicht-ASCII-Zeichen angezeigt, die immer noch nicht korrekt gerendert werden.
systemd
: localectl set-locale LANG=C.UTF-8
?
/etc/pam.d
, sollte es funktionieren. Aber als Hack für den Moment möchten Sie vielleicht /etc/profile.d/mylocalesetting.sh
die Linie erstellen und hinzufügen export LANG=en_US.UTF-8
.
/etc/default/locale
wird von PAM gelesen. Haben Sie möglicherweise PAM deaktiviert?