Antworten:
Das Terminal verwendet Umgebungsvariablen, um zu bestimmen, welcher Zeichensatz verwendet werden soll. Sie können ihn daher anhand der folgenden Variablen bestimmen :
echo $LC_CTYPE
oder
echo $LANG
localeProgramm halten (wie in anderen Antworten hier zu sehen).
localeUmgebungsvariablen , um seine Codierung zu bestimmen. Das Terminal kann jedoch Anwendungen, die mit ihm interagieren, über die Codierung informieren, indem es die localeUmgebungsvariablen festlegt. Zum Beispiel auf macOS können Sie die Terminal - Codierung wählen und gegebenenfalls die festgelegten localeUmgebungsvariablen an Klemme Start in Terminal> Preferences> Profiles> Advanced.
locale Ein Befehl ohne Argumente gibt die Werte aller relevanten Umgebungsvariablen mit Ausnahme von LANGUAGE aus.
Für die aktuelle Codierung:
locale charmap
Für verfügbare Gebietsschemas:
locale -a
Für verfügbare Codierungen:
locale -m
Wenn Sie Python haben:
python -c "import sys; print(sys.stdout.encoding)"
Meines Wissens nein.
Indizien von $LC_CTYPE,locale und diese scheinen mögen anziehen, aber diese sind vollständig von der Codierung der Terminalanwendung (tatsächlich einem Emulator) getrennt geschehen unter Verwendung werden , wenn Zeichen auf dem Bildschirm angezeigt wird .
Die einzige Möglichkeit, die Codierung sicher zu erkennen, besteht darin, etwas auszugeben, das nur in der Codierung vorhanden ist, z ä einen Screenshot zu machen, das Bild zu analysieren und zu überprüfen, ob das Ausgabezeichen korrekt ist.
Also nein, das ist leider nicht möglich.
Verwenden Sie den localeBefehl, um die aktuellen Informationen zum Gebietsschema anzuzeigen. Unten finden Sie ein Beispiel für RHEL 7.8
[usr@host ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=