अब मैं अपने gnome-टर्मिनल के चरित्र एन्कोडिंग को "GBK" में बदल देता हूं (डिफ़ॉल्ट रूप से यह UTF-8 है), लेकिन मैं अपने लिनक्स में मूल्य (वर्ण एन्कोडिंग) कैसे प्राप्त कर सकता हूं?
अब मैं अपने gnome-टर्मिनल के चरित्र एन्कोडिंग को "GBK" में बदल देता हूं (डिफ़ॉल्ट रूप से यह UTF-8 है), लेकिन मैं अपने लिनक्स में मूल्य (वर्ण एन्कोडिंग) कैसे प्राप्त कर सकता हूं?
जवाबों:
टर्मिनल पर्यावरण चर का उपयोग करता है यह निर्धारित करने के लिए कि किस वर्ण का उपयोग करना है, इसलिए आप उन चर को देखकर यह निर्धारित कर सकते हैं:
echo $LC_CTYPE
या
echo $LANG
locale
कार्यक्रम से चिपके रहना चाहिए (जैसा कि यहां अन्य उत्तरों में देखा गया है)।
locale
। टर्मिनल हालांकि उन अनुप्रयोगों को दे सकता है जो इसे इंटरेक्ट करते हैं और locale
पर्यावरण चर को सेट करके इसकी एन्कोडिंग को जानते हैं । उदाहरण के लिए, MacOS पर आप टर्मिनल एन्कोडिंग चुनें, और वैकल्पिक रूप से सेट कर सकते हैं locale
में टर्मिनल स्टार्टअप पर वातावरण चर Terminal
> Preferences
> Profiles
> Advanced
।
locale
बिना किसी तर्क के कमांड, LANGUAGE को छोड़कर सभी प्रासंगिक पर्यावरण चर के मूल्यों को प्रिंट करेगा।
वर्तमान एन्कोडिंग के लिए:
locale charmap
उपलब्ध स्थानों के लिए:
locale -a
उपलब्ध एन्कोडिंग के लिए:
locale -m
यदि आपके पास पायथन है:
python -c "import sys; print(sys.stdout.encoding)"
मेरी जानकारी के लिए, नहीं।
परिसमापक संकेत $LC_CTYPE
,locale
और इस तरह आकर्षक लग सकता है, लेकिन ये पूरी तरह से टर्मिनल अनुप्रयोग (वास्तव में एक एमुलेटर) एन्कोडिंग से अलग हो जाते हैं जब स्क्रीन पर वर्ण प्रदर्शित करते हैं।
वे केवल यह सुनिश्चित करने के लिए एन्कोडिंग का पता लगाने का एक तरीका है कि केवल एन्कोडिंग में मौजूद किसी चीज़ का उत्पादन करना, जैसे ä
, एक स्क्रीनशॉट लें, उस छवि का विश्लेषण करें और जांचें कि आउटपुट कैरेक्टर सही है या नहीं।
तो नहीं, यह संभव नहीं है, दुख की बात है।
वर्तमान स्थानीय जानकारी देखने के लिए locale
कमांड का उपयोग करें । नीचे RHEL 7.8 पर एक उदाहरण दिया गया है
[usr@host ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=