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
locale
Programm halten (wie in anderen Antworten hier zu sehen).
locale
Umgebungsvariablen , um seine Codierung zu bestimmen. Das Terminal kann jedoch Anwendungen, die mit ihm interagieren, über die Codierung informieren, indem es die locale
Umgebungsvariablen festlegt. Zum Beispiel auf macOS können Sie die Terminal - Codierung wählen und gegebenenfalls die festgelegten locale
Umgebungsvariablen 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 locale
Befehl, 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=