In OS X Lion, LANG non è impostato su UTF-8, come correggerlo?


148

Provo a installare postgress in OS X Lion e trovo che non sia impostato correttamente l'ambiente var LOCALE.

Questo è ciò che è impostato:

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

Mi aspetto qualcosa con UTF-8. Questa è una configurazione pulita di OS X Lion, con lingua spagnola. Non muovo niente.

Non so come installarlo su UTF-8.

Nelle impostazioni del terminale, controlla UTF-8 e imposta LOCALE in aperto, nonostante ciò non funzioni.


2
È strano. Dovrebbe funzionare in Terminale per impostazione predefinita, supponendo che tu stia utilizzando la shell predefinita (bash) e il profilo delle impostazioni del terminale predefinito (Base). Notare che se si modifica la codifica o si modifica "imposta variabili di ambiente locali", avranno effetto solo su nuovi terminali, non su quelli già aperti.
Pagina Chris

Uso zsh (usando oh my zsh! Installer), forse è così?
mamcx,

Possibilmente. Prova a eseguire zsh senza alcuna configurazione personalizzata per vedere se il problema scompare. Usa Shell> Nuovo comando per eseguire zsh --no-rcse zsh --no-rcs --no-global-rcsrestringere il problema. Inoltre, prova a eseguire il localecomando senza shell tramite Nuovo comando e vedi cosa riporta.
Chris Page

@ChrisPage Ho avuto esattamente lo stesso output dell'OP, con quelle impostazioni abilitate nel Terminale. Ho dovuto set locale environment variablesspegnere, riavviare il terminale e quindi riaccenderlo per visualizzare l'ambiente giusto.
Chris,

C'è una risposta completa a questa domanda su Ask Different .
Starfry,

Risposte:


311

Ho notato lo stesso identico problema durante l'accesso a server che eseguono Red Hat da una macchina OSX Lion.

Prova ad aggiungere o modificare il ~/.profilefile affinché esporti correttamente le impostazioni locali quando avvii una nuova sessione.

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

Queste due righe aggiunte al file dovrebbero essere sufficienti per impostare la locale [sostituire en_USla locale desiderata e verificare in anticipo che sia effettivamente installata sul sistema ( locale -a)].

Successivamente, è possibile avviare una nuova sessione e verificare utilizzando locale:

$ locale

Il seguente dovrebbe essere l'output:

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
Inoltre, inizialmente ho notato il problema durante l'utilizzo di iTerm2. Questa soluzione alternativa sembra funzionare sia per iTerm2 che per Terminal.
wormintrude,

1
Ho trascorso un'ora alla ricerca di una soluzione per questo problema grazie mille per aver pubblicato quest'uomo. Posso confermare che funziona sia su Terminal che su iTerm2.
Mariano Cavallo,

7
il link non è valido.
Vincent Sit,

11
Ho un .bash_profilenella mia cartella home e .profilenon era di provenienza quando .bash_profileera presente. Avevo bisogno di fonte manuale .profileall'interno.bash_profile
BrunoJCM

3
Incredibile, l'ho fatto, solo una nota, una volta che usi zsh, non essere stupido come me ... la configurazione c'è ~/.zshrc... beh ora funziona come un incantesimo
Redrick,

20

Recentemente ho avuto lo stesso problema su OS X Sierra con bash shell e grazie alle risposte sopra ho dovuto solo modificare il file

~/.bash_profile 

e aggiungi quelle righe

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

1
Aiuta davvero. Non ce l'ho bash_profilee l'ho creato manualmente. E senza mettere exporta bash_profile, ogni volta che ripristiniamo il terminale la lingua tornerà indietro.
Phan Van Linh,

7

Questo è un colpo di testa da molto tempo. Vedo ora che è OSX .. lo cambio a livello di sistema e funziona perfettamente

Quando aggiungo questo, il LANG in Centos6 e Fedora è anche il mio LANG preferito. È inoltre possibile "deselezionare" esporta o impostare le impostazioni locali nelle impostazioni del terminale (OSX) / etc / profile

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


5

se hai installato zsh puoi anche aggiornare ~/.zprofilecon

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

e controlla l'output usando il localecmd come mostrato sopra

❯ 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

Ho avuto questo problema con MacOS High Sierria.

Schermata 1

Puoi impostare le impostazioni locali e la lingua nel formato UTF-8 usando il comando seguente:

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

Schermata 2

Ora per verificare se l'ambiente locale è aggiornato usa il comando seguente:

Locale

Schermata 3


1
In che modo questa risposta è diversa rispetto a quella accettata?
Denis V

2
Qual è lo scopo della prima foto? Non è la stessa dell'ultima?
Narengi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.