In OS X Lion ist LANG nicht auf UTF-8 eingestellt. Wie kann das Problem behoben werden?


148

Ich versuche, postgress in OS X Lion einzurichten, und stelle fest, dass die LOCALE-Umgebungsvariable nicht korrekt eingerichtet ist.

Dies ist, was eingestellt ist:

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

Ich erwarte etwas mit UTF-8. Dies ist ein sauberes OS X Lion-Setup mit spanischer Sprache. Ich bewege nichts.

Ich weiß nicht, wie ich es auf UTF-8 einrichten soll.

Überprüfen Sie in den Terminaleinstellungen UTF-8 und setzen Sie LOCALE auf open, obwohl dies nicht funktioniert.


2
Das ist seltsam. Es sollte standardmäßig in Terminal funktionieren, vorausgesetzt, Sie verwenden die Standard-Shell (Bash) und das Standard-Terminal-Einstellungsprofil (Basic). Beachten Sie, dass wenn Sie die Codierung ändern oder "Gebietsschema-Umgebungsvariablen festlegen" ändern, diese nur in neuen Terminals wirksam werden, nicht in solchen, die bereits geöffnet sind.
Chris Page

Ich benutze zsh (mit oh my zsh! Installer), vielleicht ist das so?
Mamcx

Möglicherweise. Versuchen Sie, zsh ohne benutzerdefinierte Konfiguration auszuführen, um festzustellen, ob das Problem behoben ist. Verwenden Sie Shell> New Command , um das Problem auszuführen zsh --no-rcsund zsh --no-rcs --no-global-rcseinzugrenzen. Versuchen Sie auch, den localeBefehl ohne Shell über New Command auszuführen, und sehen Sie, was er meldet.
Chris Page

@ChrisPage Ich hatte genau die gleiche Ausgabe wie das OP, mit diesen Einstellungen im Terminal aktiviert. Ich musste set locale environment variablesdas Terminal ausschalten, neu starten und dann wieder einschalten, damit die richtige Umgebung angezeigt wurde.
Chris

Auf Ask Different gibt es eine gründliche Antwort auf diese Frage .
Sternenhimmel

Antworten:


311

Ich habe genau das gleiche Problem festgestellt, als ich mich auf Servern angemeldet habe, auf denen Red Hat von einem OSX Lion-Computer ausgeführt wird.

Versuchen Sie, die ~/.profileDatei hinzuzufügen oder zu bearbeiten, damit Ihre Gebietsschemaeinstellungen beim Starten einer neuen Sitzung korrekt exportiert werden.

export LC_ALL=en_US.UTF-8  
export LANG=en_US.UTF-8

Diese beiden der Datei hinzugefügten Zeilen sollten ausreichen, um das Gebietsschema festzulegen [ersetzen en_USSie das gewünschte Gebietsschema und überprüfen Sie vorher, ob es tatsächlich auf Ihrem System installiert ist ( locale -a)].

Danach können Sie eine neue Sitzung starten und Folgendes überprüfen locale:

$ locale

Folgendes sollte die Ausgabe sein:

LANG="en_US.UTF-8"  
LC_COLLATE="en_US.UTF-8"  
LC_CTYPE="en_US.UTF-8"  
LC_MESSAGES="en_US.UTF-8"  
LC_MONETARY="en_US.UTF-8"  
LC_NUMERIC="en_US.UTF-8"  
LC_TIME="en_US.UTF-8"  
LC_ALL="en_US.UTF-8"  

2
Außerdem habe ich das Problem ursprünglich bei der Verwendung von iTerm2 bemerkt. Diese Problemumgehung scheint sowohl für iTerm2 als auch für Terminal zu funktionieren.
Wurmtrude

1
Ich habe eine Stunde damit verbracht, nach einer Lösung für diese Angelegenheit zu suchen. Vielen Dank, dass Sie diesen Mann eingestellt haben. Ich kann bestätigen, dass es sowohl auf dem Terminal als auch auf iTerm2 funktioniert.
Mariano Cavallo

7
Link ist ungültig.
Vincent Sit

11
Ich habe einen .bash_profileOrdner in meinem Home-Ordner und .profilewurde nicht gefunden, als er .bash_profilevorhanden war. Ich musste manuell nach .profileinnen .bash_profile
suchen

3
Erstaunlich, das hat es geschafft, nur eine Anmerkung, wenn Sie zsh verwenden, seien Sie nicht dumm wie ich ... die Konfiguration, die es gibt ~/.zshrc... funktioniert jetzt wie ein Zauber
Redrick

20

Ich hatte kürzlich das gleiche Problem unter OS X Sierra mit der Bash-Shell, und dank der obigen Antworten musste ich nur die Datei bearbeiten

~/.bash_profile 

und diese Zeilen anhängen

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

1
Es hilft wirklich. Ich habe nicht bash_profileund ich habe es manuell erstellt. Und ohne zu setzen export, bash_profilewird jedes Mal, wenn wir das Terminal zurücksetzen, die Sprache zurückgesetzt.
Phan Van Linh

7

Dies ist ein Headbreaker für eine lange Zeit. Ich sehe jetzt, dass es OSX ist. Ich ändere es systemweit und es funktioniert perfekt

Wenn ich dies hinzufüge, ist die LANG in Centos6 und Fedora auch meine bevorzugte LANG. Sie können den Export auch deaktivieren oder das Gebietsschema in den Terminaleinstellungen (OSX) / etc / profile festlegen

export LC_ALL = en_US.UTF-8
export LANG = en_US.UTF-8


5

wenn Sie zsh installiert Sie aktualisieren können ~/.zprofilemit

if [[ -z "$LC_ALL" ]]; then
  export LC_ALL='en_US.UTF-8'
fi

und überprüfen Sie die Ausgabe mit dem localecmd wie oben gezeigt

❯ locale                                                                                                                                           
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

0

Ich hatte dieses Problem mit MacOS High Sierria.

Screenshot 1

Sie können einrichten locale sowie Sprache zu UTF-8 - Format mit folgendem Befehl ein :

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Screenshot 2

Um zu überprüfen, ob die Gebietsschemaumgebung aktualisiert wurde, verwenden Sie den folgenden Befehl:

Locale

Screenshot 3


1
Wie unterscheidet sich diese Antwort von der akzeptierten?
Denis V

2
Was ist der Zweck des ersten Bildes? Ist es nicht dasselbe wie das letzte?
Narengi
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.