OS X Lion'da LANG, UTF-8'e ayarlı değil, nasıl düzeltilir?


152

OS X Lion'da postgress ayarlamaya çalışıyorum ve bunun LOCALE ortam var.

Ayarlanan şudur:

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

UTF-8 ile bir şey bekliyorum. Bu, İspanyolca diliyle temiz bir OS X Lion kurulumudur. Ben hiçbir şeyi hareket ettirmiyorum.

UTF-8'e nasıl ayarlandığını bilmiyorum.

Terminal ayarlarında, UTF-8'i kontrol edin ve çalışmamasına rağmen LOCALE'i açık olarak ayarlayın.


2
Bu garip. Varsayılan kabuğu (bash) ve varsayılan terminal ayarları profilini (Temel) kullandığınızı varsayarak, varsayılan olarak Terminal'de çalışmalıdır. Kodlamayı değiştirirseniz veya "yerel ortam değişkenlerini belirleme" yi değiştirirseniz, bunların zaten açık olanlarda değil, yalnızca yeni terminallerde etkili olacağını unutmayın.
Chris Sayfa

Zsh kullanıyorum (oh benim zsh! Yükleyicimi kullanarak), belki de budur?
mamcx

Muhtemelen. Sorunun çözülüp çözülmediğini görmek için herhangi bir özel yapılandırma olmadan zsh çalıştırmayı deneyin. Kullanım Shell> Yeni Komuta çalıştırmak zsh --no-rcsve zsh --no-rcs --no-global-rcssorunu daraltmak için. Ayrıca, localekomutu Yeni Komut aracılığıyla bir kabuk olmadan çalıştırmayı deneyin ve ne rapor ettiğini görün.
Chris Sayfa

@ChrisPage Terminalde etkinleştirilen bu ayarlarla OP ile aynı çıktıya sahiptim. Ben geçmek zorunda set locale environment variables, kapalı terminali yeniden başlatın ve sonra yukarı göstermek için doğru ortamı almak için tekrar açın.
Chris

Farklı Sor üzerine bu sorunun kapsamlı bir cevabı var .
starfry

Yanıtlar:


316

Bir OSX Lion makinesinden Red Hat çalıştıran sunucularda oturum açarken aynı sorunu fark ettim.

~/.profileYeni bir oturum başlattıktan sonra yerel ayarlarınızı doğru şekilde dışa aktarmak için dosyayı eklemeyi veya düzenlemeyi deneyin .

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

Dosyaya eklenen bu iki satır yerel ayarı ayarlamak için yeterli olmalıdır [ en_USistediğiniz yerel ayarı değiştirin ve önceden sisteminizde gerçekten kurulu olup olmadığını kontrol edin ( locale -a)].

Bundan sonra, yeni bir oturum başlatabilir ve localeşunları kullanarak kontrol edebilirsiniz :

$ locale

Aşağıdakiler çıktı olmalıdır:

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
Ayrıca, iTerm2'yi kullanırken sorunu ilk olarak fark ettim. Bu geçici çözüm hem iTerm2 hem de Terminal için işe yarıyor gibi görünüyor.
wormintrude

1
Bu konuya bir çözüm bulmak için bir saat harcadım, bu adamı gönderdiğiniz için çok teşekkürler. Hem Terminal hem de iTerm2'de çalıştığını doğrulayabilirim.
Mariano Cavallo

7
bağlantı geçersiz.
Vincent Sit

11
Bir var .bash_profilebenim ev klasörü ve .profilene zaman kaynaklandığı değildi .bash_profilemevcuttu. .profileİçeriye manuel olarak kaynak vermem gerekiyordu.bash_profile
BrunoJCM

4
İnanılmaz, bu yaptı, sadece bir not, bir kez zsh kullandığınızda, benim kadar aptal olma ... oradaki yapılandırma ~/.zshrc... şimdi bir cazibe gibi çalışıyor
Redrick

21

Son zamanlarda bash shell ile OS X Sierra'da aynı sorunu yaşadım ve yukarıdaki cevaplar sayesinde sadece dosyayı düzenlemek zorunda kaldım

~/.bash_profile 

ve bu satırları ekleyin

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

1
Gerçekten yardımcı oluyor. Bende yok bash_profileve manuel olarak oluşturdum. Koymak olmadan Ve exportüzere bash_profile, her zaman biz dil geri alma edecek terminali sıfırlayın.
Phan Van Linh

7

Bu uzun zamandır baş kırıcıdır. Şimdi OSX olduğunu görüyorum .. Sistem genelinde değiştiriyorum ve mükemmel çalışıyor

Bunu eklediğimde, Centos6 ve Fedora'daki LANG de tercih ettiğim LANG. Ayrıca terminal ayarlarında (OSX) / etc / profile dışa aktarımın "işaretini kaldırabilir" veya yerel ayarı ayarlayabilirsiniz.

dışa aktar LC_ALL = en_US.UTF-8
dışa aktar LANG = en_US.UTF-8


5

Eğer varsa zsh da güncelleyebilirsiniz yüklü ~/.zprofileolan

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

ve localeyukarıda gösterildiği gibi cmd'yi kullanarak çıktıyı kontrol edin

❯ 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

MacOS High Sierria ile bu sorunu yaşadım.

Ekran görüntüsü 1

Sen ayarlayabilirsiniz yerel hem de dili ile UTF-8 biçiminde komutu altında kullanılarak:

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

Ekran görüntüsü 2

Şimdi yerel ortamın güncellenip güncellenmediğini kontrol etmek için aşağıdaki komutu kullanın:

Locale

Ekran görüntüsü 3


2
Kabul edilen yanıtla karşılaştırıldığında bu yanıt nasıl farklıdır?
Denis V

2
İlk fotoğrafın amacı nedir? Sonuncusuyla aynı değil mi?
narengi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.