Kann ein Gnome Terminal-Profil standardmäßig UTF-8 verwenden?


19

Ich bin auf einem Ubuntu-System (glaube ich). Ich habe kein Root-Verzeichnis, daher kann ich das Gebietsschema nicht ändern. Ich möchte, dass mein Standard-Terminalprofil standardmäßig UTF-8 verwendet. Es sollte eine Möglichkeit dafür geben, entweder .gconf/apps/gnome-terminal/irgendwo im Verzeichnis oder in einer Umgebungsvariablen oder so. Ich kann es jedoch nicht finden.

Bearbeiten Sie mit mehr Details:

In einem Terminal habe ich:

grid-unv55$ 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=
grid-unv55$ gnome-terminal

Wenn ich versuche, mehr ein UTF-Dokument in diesem neuen Terminal zu erstellen, erhalte ich:

\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd
\noise:bgspeech \ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd

Welches erscheint auf meinem Bildschirm als Punkte. (die uffds waren ein Ausschneiden und Einfügen. Ich habe das "\ noise: bgspeech" dort gelassen, damit Sie sehen können, dass ASCII korrekt ausgeschnitten und eingefügt wurde.)

Antworten:


12

Ich glaube , dass gnome-terminal wird funktionieren mit UTF-8 in der Shell aktiviert ist, so alles , was Sie tun müssen , um ermöglichen , dass . Stellen

export LANG=en_US.UTF-8

rein ~/.bashrcund los gehts


BEARBEITEN:

Okay, die Antwort ist, dass Sie dies derzeit nicht einstellen können . Gnome Terminal folgt der aktuellen LANG-Einstellung der Umgebung und verwendet die Kodierung als Standard. Daher muss LANG UTF-8 enthalten, bevor gnome-terminal gestartet wird. Wenn Sie diese ~/.bashrcOption aktivieren, müssen Sie sich lediglich abmelden und erneut anmelden.

(Beachten Sie, dass es eigentlich besser ist, dies ~/.bash_profileeinzufügen, damit Sie es für Subshells überschreiben können. Ich bin mir jedoch nicht sicher, ob bash beim Einrichten der Gnome-Umgebung unbedingt als Anmeldeshell ausgeführt wird. Das ist einen Test wert ....)


1
scheint nicht zu funktionieren.
Brian Postow

Hmm. Auf was ist $ LANG standardmäßig eingestellt? Verändert es sich, wenn Sie das in Ihren bashrc schreiben?
Mattdm

C, und es in den Baschrank zu legen, hat es verändert. Zugegeben, ich habe mich nicht abgemeldet und wieder angemeldet, aber ich habe ein neues Terminal gestartet und es hat mit UTF im LANG begonnen (und das Gebietsschema ist auch mit UTF festgelegt), aber das Terminal zeigt immer noch kein Japanisch an ...
Brian Postow

1
Früher wurde es nur in die Shell innerhalb des Gnome-Terminals eingesetzt. Jetzt wird es in der Umgebung eingerichtet, unter der das Gnome-Terminal selbst läuft.
Mattdm

2
Unter Ubuntu 10.04, können Sie Umgebungsvariablen für die gesamte Sitzung vom Set ~/.profile- nicht~/.bashrc , und nicht ~/.bash_profileentweder .
Gilles 'SO- hör auf böse zu sein'

9

Sie können das Gebietsschema für gnome-terminalmit dem folgenden Befehl festlegen, wobei Defaultder Name des Profils ist.

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8

Das hat bei mir funktioniert. Aber war unnötig nach dem Wechsel LANG=en_US.UTF-8in .bashrcund Neustart
Antonios Hadjigeorgalis

Hat super für mich funktioniert!
Josh M.

7

Ich hatte ein ähnliches Problem, und bei der Einstellung LANGin .bash_profilehabe den Trick nicht, ich fand heraus , dass in Gnome, können die Standard - Locale zu Beginn einer Sitzung vom GDM Login - Bildschirm eingestellt werden. Dies kann ohne Root-Zugriff erfolgen.


3

Ich habe gerade eingecheckt, menu->terminal->set character encodinges ist utf-8

Terminal und Bash sind nicht dasselbe.

Ich würde damit anfangen cat utf-8-file(cat und bash werden diese Datei unverändert an das Terminal übergeben, (naja, eigentlich an stty, stty konvertiert Zeilenumbruch in Zeilenumbruch, Zeilenumbruch usw.)), wenn dies die Datei korrekt anzeigt, dann wird gnome-terminal eingerichtet. (Dies ist alles, was ich bisher getan habe, da ich utf-8 in Englisch verwende; es wurde bereits in Ubuntu 10.10 und Debian 6 für mich eingerichtet). Also dann nur um bash etc. einzurichten

Erneutes Lesen von ~ / .bashrc

Wenn Sie bearbeiten ~/.bashrc, müssen Sie es erneut lesen . ~/.bashrc(oder eine neue Shell starten) (den Punkt nicht vergessen)


1
Wenn ich die Zeichenkodierung manuell in utf-8 ändere, mache ich das, aber wenn ich ein neues Gnome-Terminal starte, selbst von einem Terminal, das das richtige Gebietsschema hat, ist die Kodierung immer noch ascii. Ich werde der Frage weitere Details hinzufügen.
Brian Postow

3

Ich hatte gerade ein Problem behoben, das für Neueinsteiger mit neueren Versionen von GNOME (und Gnome-Terminal) relevant sein könnte:

Für jede Textcodierung, die Sie verwenden möchten, müssen die Shell (z. B. bash) und der Terminalemulator (z. B. gnome-terminal) dieselbe Codierung verwenden. Wenn beispielsweise die Shell en_US.utf8und der Terminalemulator en_US.ISO-8859-1(aka latin1) verwenden, wird in Ihrem Terminal für jedes Programm mit UTF-8-Ausgabe ein seltsamer Text angezeigt.

Jetzt kann ich die Codierung beim Anmelden nicht einstellen, wie ich es vermutet habe. Dies könnte daran liegen, dass wir hier eine ältere Version von GDM im Einsatz haben. Deshalb habe ich eine andere Lösung gebraucht.

Wie auch immer, GNOME 3 scheint weder automatisch als Quelle .bashrcnoch .profilebeim Anmelden zu fungieren. Aber es gibt einen Quellcode .gnomerc, in den Sie Umgebungsvariablen einfügen können, die in GNOME-Programme exportiert werden (soweit ich das beurteilen kann).

Putting export LANG="en_US.utf8"in .gnomercso beginnt gnome-terminal eine UTF-8 - Kodierung standardmäßig verwendet wird , wenn eine neue Instanz gestartet wird. (Ändern Sie Ihr Gebietsschema entsprechend Ihren Anforderungen.)

Hoffentlich hat das jemandem geholfen!


-1

Wie von anderen Benutzern erwähnt, teilen Sie der Shell mit, mit welcher Codierung Sie arbeiten

export LANG=en_US.UTF-8

Geben Sie dies in .bashrc ein und gnome-terminal sollte es beim nächsten Login abholen.

Stellen Sie die Kodierung für das Gnome-Terminal im laufenden Betrieb ein : Menüleiste> Terminal> Zeichenkodierung einstellen

Stellen Sie die Standardkodierung dauerhaft ein: gconf-editor> Apps> gnome-terminal> Profile> Standard> Kodierung> utf-8


2
Das ist nicht ganz richtig. Für mich habe ich ein .profile und eine .bashrc-Datei. Meine Login-Shell ist Bash. gnome-terminal ignoriert die LANG-Einstellungen in .bashrc, wenn sie mit den LANG-Einstellungen in .profile in Konflikt stehen. Daher muss LANG in beiden Dateien festgelegt werden.
Gary

Nach meinem Verständnis verwendet bash .profile für Login-Shells und .bashrc ansonsten. Unter Linux verwenden neue Befehlsfenster die Erweiterung .bashrc (unter Mac die Erweiterung .profile ). Ich kenne keine Umstände, unter denen beide automatisch ausgeführt werden, aber es ist äußerst verbreitet, alle Ihre Konfigurationen in eine zu packen und dann von der anderen aufzurufen. In der Regel wird .bashrc über .profile ausgeführt (normalerweise nur über interaktive Shells). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Edward Falk
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.