W OS X Lion, LANG nie jest ustawiony na UTF-8, jak to naprawić?

148

Próbuję ustawić postgress w OS X Lion i stwierdzam, że nie jest poprawnie skonfigurowane środowisko LOCALE var.

Oto, co jest ustawione:

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

Spodziewam się czegoś z UTF-8. To jest czysta konfiguracja systemu OS X Lion z językiem hiszpańskim. Nic nie ruszam.

Nie wiem, jak ustawić to na UTF-8.

W ustawieniach terminala należy sprawdzić UTF-8 i ustawić LOCALE na otwarte, mimo to nie działa.

mamcx
źródło
2
To dziwne. Powinien działać domyślnie w Terminalu, zakładając, że używasz domyślnej powłoki (bash) i domyślnego profilu ustawień terminala (Basic). Zauważ, że jeśli zmienisz kodowanie lub zmienisz "ustaw zmienne środowiskowe locale", będą one obowiązywać tylko w nowych terminalach, a nie tych, które są już otwarte.
Chris Page,
Używam zsh (używając oh mojego instalatora zsh!), Może tak jest?
mamcx
Możliwie. Spróbuj uruchomić zsh bez żadnej niestandardowej konfiguracji, aby sprawdzić, czy problem zniknie. Użyj Powłoka> Nowe polecenie, aby uruchomić zsh --no-rcsi zsh --no-rcs --no-global-rcszawęzić problem. Spróbuj też po prostu uruchomić localepolecenie bez powłoki za pomocą nowego polecenia i zobacz, co zgłasza.
Chris Page
@ChrisPage Miałem dokładnie to samo wyjście co OP, z tymi ustawieniami włączonymi w terminalu. Musiałem set locale environment variableswyłączyć, zrestartować terminal, a następnie włączyć go ponownie, aby pojawiło się odpowiednie środowisko.
Chris,
Dokładną odpowiedź na to pytanie można znaleźć w Ask Different .
starfry

Odpowiedzi:

311

Zauważyłem dokładnie ten sam problem podczas logowania się na serwery z systemem Red Hat z komputera z systemem OSX Lion.

Spróbuj dodać lub edytować ~/.profileplik, aby poprawnie wyeksportować ustawienia regionalne po zainicjowaniu nowej sesji.

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

Te dwie linie dodane do pliku powinny wystarczyć do ustawienia locale [zamień en_USna żądane locale i sprawdź wcześniej, czy jest rzeczywiście zainstalowane w twoim systemie ( locale -a)].

Następnie możesz rozpocząć nową sesję i sprawdzić za pomocą locale:

$ locale

Wynik powinien być następujący:

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"  
wormintrude
źródło
2
Również pierwotnie zauważyłem problem podczas korzystania z iTerm2. To obejście wydaje się działać zarówno w przypadku iTerm2, jak i Terminalu.
wormintrude
1
Spędziłem godzinę szukając rozwiązania w tej sprawie, wielkie dzięki za wysłanie tego człowieka. Mogę potwierdzić, że działa zarówno na Terminalu, jak i iTerm2.
Mariano Cavallo
7
link jest nieprawidłowy.
Vincent Sit
11
Mam .bash_profilew folderze domowym i .profilenie był pobierany, kiedy .bash_profilebył obecny. Musiałem ręcznie .profile.bash_profile
pobrać
3
Niesamowite, to się udało, tylko uwaga, kiedy użyjesz zsh, nie bądź głupi jak ja ... konfiguracja jest ~/.zshrc... cóż, teraz działa jak urok
Redrick
20

Niedawno miałem ten sam problem na OS X Sierra z powłoką bash, a dzięki powyższym odpowiedziom musiałem tylko edytować plik

~/.bash_profile 

i dołącz te wiersze

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
FredericK
źródło
1
To naprawdę pomaga. Nie mam bash_profilei muszę stworzyć go ręcznie. I bez położyć exportsię bash_profile, za każdym razem możemy zresetować zacisk język będzie wycofać.
Phan Van Linh
7

To jest przełom na długi czas. Teraz widzę, że to OSX .. Zmieniam to w całym systemie i działa idealnie

Kiedy dodam to, LANG w Centos6 i Fedorze jest również moim preferowanym LANG. Możesz także „odznaczyć” eksport lub ustawić ustawienia regionalne w ustawieniach terminala (OSX) / etc / profile

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

Marcel Kraan
źródło
5

jeśli masz zainstalowany zsh , możesz również zaktualizować za ~/.zprofilepomocą

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

i sprawdź dane wyjściowe za pomocą localecmd, jak pokazano powyżej

❯ 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"
Milland
źródło
0

Miałem ten problem z MacOS High Sierria.

Zrzut ekranu 1

Możesz ustawić ustawienia regionalne i język na format UTF-8 za pomocą poniższego polecenia:

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

Zrzut ekranu 2

Teraz, aby sprawdzić, czy środowisko lokalne jest zaktualizowane, użyj poniższego polecenia:

Locale

Zrzut ekranu 3

Jayprakash Dubey
źródło
1
Czym ta odpowiedź różni się od tej przyjętej?
Denis V
2
Jaki jest cel pierwszego zdjęcia? Czy to nie to samo, co poprzednia?
narengi