2011-10-04 13 views
7

सी में वर्तमान लोकेल का अक्षर कैसे ढूंढ सकता हूं?सी में वर्तमान लोकेल का अक्षरसेट प्राप्त करना?

सेटलोकेल (एलसी_ओएल, एनयूएलएल) "en_US.UTF8" देता है, लेकिन क्या चार्जेट प्राप्त करने का कोई तरीका है? मेरे सिस्टम पर /etc/locale.gen में यह स्थानीय और वर्णमाला सूचीबद्ध करता है, इसलिए यह नाम में नहीं है।

उत्तर

6

आप nl_langinfo(3) फ़ंक्शन का उपयोग कर वर्तमान लोकेल के विभिन्न मानकों से पूछ सकते हैं। nl_langinfo(CODESET) पर कॉल करके वर्णमाला प्राप्त की जाती है।

नोट, कि आपको अपने प्रोग्राम लोकेल-जागरूक बनाने के लिए nl_langinfo का उपयोग करने से पहले setlocale पर कॉल करना होगा।

+0

क्या आप विंडोज़ पर ऐसा करने के तरीके के बारे में जानते हैं? – Jookia

+0

@ जुकीया: मैं बस यूनिकोड को परिभाषित करता हूं और विंडोज़ में सब कुछ के लिए 'wchar_t' एपीआई का उपयोग करता हूं। एमएसडीएन में त्वरित खोज एन्कोडिंग प्राप्त करने के लिए '_getmbcp' फ़ंक्शन की तलाश करने का सुझाव देती है (नोट, कि विंडो एन्कोडिंग के संख्यात्मक कोड का उपयोग करती हैं), लेकिन केवल विरासत टेक्स्ट फ़ाइलों को समझने के लिए इसका उपयोग करें। –

+0

wchar_t एपीआई यूटीएफ -16 हैं, तो क्या यह मानना ​​सुरक्षित है कि मुझे विंडोज़ में यूटीएफ -16 टेक्स्ट फेंकना चाहिए? – Jookia

संबंधित मुद्दे