En OS X Lion, LANG no está configurado en UTF-8, ¿cómo solucionarlo?

148

Intento configurar postgress en OS X Lion, y encuentro que no está configurado correctamente el entorno LOCALE var.

Esto es lo que se establece:

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

Espero algo con UTF-8. Esta es una configuración limpia de OS X Lion, con idioma español. No muevo nada

No sé cómo configurarlo para UTF-8.

En la configuración del terminal, verifique UTF-8 y configure LOCALE en abierto, a pesar de que no funciona.

mamcx
fuente
2
Eso es extraño. Debería funcionar en Terminal de forma predeterminada, suponiendo que esté utilizando el shell predeterminado (bash) y el perfil de configuración de terminal predeterminado (Básico). Tenga en cuenta que si modifica la codificación o cambia "establecer variables de entorno de configuración regional", solo surtirán efecto en los nuevos terminales, no en los que ya están abiertos.
Chris Page
Yo uso zsh (usando el instalador oh my zsh!), Tal vez es eso?
mamcx
Posiblemente. Intente ejecutar zsh sin ninguna configuración personalizada para ver si el problema desaparece. Use Shell> Nuevo comando para ejecutar zsh --no-rcsy zsh --no-rcs --no-global-rcsreducir el problema. Además, intente ejecutar el localecomando sin un shell a través de New Command y vea lo que informa.
Chris Page
@ ChrisPage Tuve exactamente la misma salida que el OP, con esas configuraciones habilitadas en la Terminal. Tuve que set locale environment variablesapagar, reiniciar el terminal y luego volver a encenderlo para que aparezca el entorno adecuado.
Chris
Hay una respuesta completa a esta pregunta en Pregunte diferente .
Starfry

Respuestas:

311

Noté exactamente el mismo problema al iniciar sesión en servidores que ejecutan Red Hat desde una máquina OSX Lion.

Intente agregar o editar el ~/.profilearchivo para que exporte correctamente la configuración regional al iniciar una nueva sesión.

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

Estas dos líneas agregadas al archivo deberían ser suficientes para establecer la configuración regional [reemplace en_USla configuración regional deseada y compruebe de antemano que realmente está instalada en su sistema ( locale -a)].

Después de eso, puede comenzar una nueva sesión y verificar usando locale:

$ locale

El siguiente debería ser el resultado:

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"  
gusano
fuente
2
Además, originalmente noté el problema al usar iTerm2. Esta solución alternativa parece funcionar tanto para iTerm2 como para Terminal.
wormintrude
1
Pasé una hora buscando una solución para este asunto, muchas gracias por publicar a este hombre. Puedo confirmar que funciona tanto en Terminal como en iTerm2.
Mariano Cavallo
77
El enlace no es válido.
Vincent Sit
11
Tengo un .bash_profileen mi carpeta de inicio y .profileno estaba siendo fuente cuando .bash_profileestaba presente. Necesitaba .profile.bash_profile
buscar
3
Increíble, eso fue todo, solo una nota, una vez que uses zsh, no seas tonto como yo ... la configuración que hay ~/.zshrc... bueno ahora funciona como un encanto
Redrick
20

Recientemente tuve el mismo problema en OS X Sierra con bash shell, y gracias a las respuestas anteriores solo tuve que editar el archivo

~/.bash_profile 

y anexar esas líneas

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
FredericK
fuente
1
Realmente ayuda. No tengo bash_profiley lo he creado manualmente. Y sin ponerlo exporta bash_profile, cada vez que reiniciamos el terminal, el idioma retrocederá.
Phan Van Linh
7

Este es un rompe cabezas por mucho tiempo. Ahora veo que es OSX ... lo cambio en todo el sistema y funciona perfecto

Cuando agrego esto, el LANG en Centos6 y Fedora también es mi LANG preferido. También puede "desmarcar" la exportación o establecer la configuración regional en la configuración del terminal (OSX) / etc / profile

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

Marcel Kraan
fuente
5

si tienes instalado zsh también puedes actualizar ~/.zprofilecon

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

y verifique la salida usando el localecmd como se muestra arriba

❯ 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
fuente
0

Tuve este problema con MacOS High Sierria.

Captura de pantalla 1

Puede configurar la configuración regional y el idioma en formato UTF-8 con el siguiente comando:

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

Captura de pantalla 2

Ahora para verificar si el entorno local está actualizado, use el siguiente comando:

Locale

Captura de pantalla 3

Jayprakash Dubey
fuente
1
¿En qué se diferencia esta respuesta en comparación con la aceptada?
Denis V el
2
¿Cuál es el propósito de la primera foto? ¿No es lo mismo que el último?
narengi