OS X Lion में, LANG UTF-8 में सेट नहीं है, इसे कैसे ठीक करें?


148

मैं OS X लॉयन में पोस्टग्रेजेशन सेटअप करने की कोशिश करता हूं, और पाता हूं कि LOCALE पर्यावरण संस्करण को सही ढंग से सेटअप नहीं किया गया है।

यह वही है जो सेट है:

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

मुझे UTF-8 के साथ कुछ उम्मीद है। यह स्पेनिश भाषा के साथ एक साफ ओएस एक्स लॉयन सेटअप है। मैं कुछ नहीं ले जाता।

मुझे नहीं पता कि इसे UTF-8 में कैसे सेटअप किया जाए।

टर्मिनल सेटिंग्स में, UTF-8 की जाँच करें और LOCALE को खुले में सेट करें, इसके बावजूद काम न करें।


2
अजीब है कि। यह डिफ़ॉल्ट रूप से टर्मिनल में काम करना चाहिए, यह मानकर कि आप डिफ़ॉल्ट शेल (बैश) और डिफ़ॉल्ट टर्मिनल सेटिंग्स प्रोफाइल (बेसिक) का उपयोग कर रहे हैं। ध्यान दें कि यदि आप एन्कोडिंग को बदलते हैं या "सेट लोकल पर्यावरण चर" बदलते हैं, तो वे केवल नए टर्मिनलों में प्रभावी होते हैं, न कि पहले से ही खुले हुए लोगों के लिए।
क्रिस पेज

मैं zsh का उपयोग करता हूँ (ओह माय ज़श! इंस्टॉलर का उपयोग करके), शायद यह है?
mamcx

संभवतः। यह देखने के लिए कि क्या समस्या दूर होती है, बिना किसी कस्टम कॉन्फ़िगरेशन के zsh चलाने की कोशिश करें। उपयोग शैल> नई कमान चलाने के लिए zsh --no-rcsऔर zsh --no-rcs --no-global-rcsसमस्या को कम करने के लिए। इसके अलावा, न्यू कमांड केlocale माध्यम से शेल के बिना केवल कमांड चलाने का प्रयास करें और देखें कि यह क्या रिपोर्ट करता है।
क्रिस पेज

@ChrisPage मेरे पास ओपी के समान सटीक आउटपुट था, उन सेटिंग्स के साथ टर्मिनल में सक्षम बनाता है। मुझे स्विच set locale environment variablesऑफ करना था, टर्मिनल को फिर से शुरू करना था और फिर इसे दिखाने के लिए सही वातावरण प्राप्त करने के लिए वापस स्विच करना था।
क्रिस

आस्क डिफरेंट पर इस सवाल का पूरी तरह से जवाब है ।
स्टारफ्री

जवाबों:


311

जब मैंने OSX Lion मशीन से Red Hat चलाने वाले सर्वर पर लॉग इन किया था, तो मैंने ठीक उसी मुद्दे को देखा।

~/.profileइसके लिए फ़ाइल को जोड़ने या संपादित करने का प्रयास करें ताकि एक नए सत्र की शुरुआत करने पर अपनी स्थानीय सेटिंग्स को सही ढंग से निर्यात किया जा सके।

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

फ़ाइल में जोड़ी गई इन दो पंक्तियों को लोकेल को सेट करने के लिए पर्याप्त होना चाहिए [ en_USअपने इच्छित स्थान के लिए बदलें , और पहले से जांचें कि यह वास्तव में आपके सिस्टम ( locale -a) पर स्थापित है ।

उसके बाद, आप एक नया सत्र शुरू कर सकते हैं और उपयोग कर सकते हैं locale:

$ 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"  

2
इसके अलावा, मैंने मूल रूप से iTerm2 का उपयोग करते समय इस मुद्दे पर ध्यान दिया। यह वर्कअराउंड iTerm2 और टर्मिनल दोनों के लिए काम करता है।
वर्मिंट्रूड 3

1
इस मामले के समाधान के लिए एक घंटे बिताए इस आदमी को पोस्ट करने के लिए बहुत बहुत धन्यवाद। मैं यह पुष्टि कर सकता हूं कि यह टर्मिनल और iTerm2 दोनों पर काम करता है।
मारियानो कैवलो

7
लिंक अमान्य है
विंसेंट सित

11
मेरे पास .bash_profileमेरे होम फोल्डर पर है और .profileजब .bash_profileमौजूद था तो उसे खट्टा नहीं किया जा रहा था। मैं मैन्युअल रूप से स्रोत की जरूरत .profileके अंदर.bash_profile
BrunoJCM

3
कमाल है, कि यह किया था, बस एक नोट, एक बार जब आप उपयोग zsh, मेरे रूप में गूंगा मत हो ... वहाँ विन्यास है ~/.zshrc... अच्छी तरह से अब एक आकर्षण की तरह काम करता है
Redrick

20

मैं हाल ही में ओएस एक्स सिएरा पर बैश शेल के साथ एक ही मुद्दा था, और ऊपर दिए गए उत्तर के लिए धन्यवाद मुझे केवल फ़ाइल को संपादित करना था

~/.bash_profile 

और उन पंक्तियों को जोड़ें

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

1
यह वास्तव में मदद करता है। मेरे पास नहीं है bash_profileऔर मैंने इसे मैन्युअल रूप से बनाया है। और बिना पुट exportके bash_profile, हर बार जब हम टर्मिनल को रीसेट करते हैं तो भाषा रोलबैक हो जाएगी।
फान वान

7

यह लंबे समय तक हेडब्रेकर होता है। मुझे लगता है कि अब यह OSX है .. मैं इसे सिस्टम-वाइड बदलता हूं और यह एकदम सही काम करता है

जब मैं इस LANG को Centos6 में जोड़ता हूं और Fedora भी मेरा पसंदीदा LANG है। आप टर्मिनल सेटिंग्स (OSX) / etc / प्रोफाइल में "अनचेक" निर्यात या सेट लोकेल भी कर सकते हैं

निर्यात LC_ALL = en_US.UTF-8
निर्यात LANG = en_US.UTF-8


5

अगर आपने zsh इंस्टॉल किया है तो आप इसके ~/.zprofileसाथ अपडेट भी कर सकते हैं

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

और localeऊपर बताए अनुसार cmd का उपयोग करके आउटपुट की जांच करें

❯ 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 के साथ रखा था।

स्क्रीनशॉट 1

आप नीचे दिए गए कमांड का उपयोग करके लोकेल के साथ-साथ भाषा को UTF-8 प्रारूप में सेट कर सकते हैं :

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

स्क्रीनशॉट 2

अब यह जांचने के लिए कि कमांड के नीचे स्थानीय वातावरण का अद्यतन उपयोग किया गया है या नहीं:

Locale

स्क्रीनशॉट 3


1
यह उत्तर स्वीकार किए गए की तुलना में अलग कैसे है?
डेनिस वी

2
पहली तस्वीर का उद्देश्य क्या है? यह पिछले एक के रूप में ही नहीं है?
narengi 16
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.