So erhalten Sie die Zeichenkodierung des Terminals
116
Jetzt ändere ich die Zeichenkodierung meines Gnome-Terminals in "GBK" (Standard ist UTF-8), aber wie kann ich den Wert (Zeichenkodierung) in meinem Linux erhalten?
Diese Umgebungsvariablen werden von Anwendungen verwendet, die das Terminal für E / A verwenden. Der Terminalemulator selbst kennt sie überhaupt nicht und seine derzeit wirksame Zeichenkodierung ist eine Einstellung irgendwo im Emulatorprogramm (ein Datenelement innerhalb einer libvte-Klasse im Fall von GNOME Terminal).
JdeBP
Die hier vorgeschlagene Reihenfolge der Variablen ist nicht gut. Eine vollständigere Lösung wäre etwa: echo $ {LC_ALL: - $ {LC_CTYPE: - $ {LANG}}}. Andererseits ist die gesetzte Variable keine Garantie für ihre Gültigkeit, daher sollten Sie sich an das localeProgramm halten (wie in anderen Antworten hier zu sehen).
Mike Frysinger
Wie @JdeBP gesagt, wird das Endgerät nicht die Verwendung von 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.
Maggyero
97
locale Ein Befehl ohne Argumente gibt die Werte aller relevanten Umgebungsvariablen mit Ausnahme von LANGUAGE aus.
Das hat bei mir auf einem CentOS-System funktioniert. Es zeigte die Systemcodierung basierend auf den aktuellen Spracheinstellungen. Die Terminaleinstellungen, die verwendet werden, um zu diesem Computer zu gelangen, sind eine andere Geschichte und eine Funktion des verwendeten Clients.
Von allen oben genannten Angeboten war der einzige Vorschlag, der auf meiner Slackware64 v. 14.2-Box funktioniert hat, dieser Python-Ausschnitt. Vielen Dank!
Thomas Altfather Good
6
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.
Antworten:
Das Terminal verwendet Umgebungsvariablen, um zu bestimmen, welcher Zeichensatz verwendet werden soll. Sie können ihn daher anhand der folgenden Variablen bestimmen :
oder
quelle
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 dielocale
Umgebungsvariablen festlegt. Zum Beispiel auf macOS können Sie die Terminal - Codierung wählen und gegebenenfalls die festgelegtenlocale
Umgebungsvariablen an Klemme Start inTerminal
>Preferences
>Profiles
>Advanced
.locale
Ein Befehl ohne Argumente gibt die Werte aller relevanten Umgebungsvariablen mit Ausnahme von LANGUAGE aus.Für die aktuelle Codierung:
Für verfügbare Gebietsschemas:
Für verfügbare Codierungen:
quelle
Überprüfen Sie die Codierung und Sprache:
Holen Sie sich alle Sprachen:
Wechseln Sie zu pt_PT.utf8:
quelle
Wenn Sie Python haben:
quelle
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.
quelle
Verwenden Sie den
locale
Befehl, um die aktuellen Informationen zum Gebietsschema anzuzeigen. Unten finden Sie ein Beispiel für RHEL 7.8quelle