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.


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"  

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

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


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"

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.