setlocale(LC_CTYPE, "de_DE.UTF8")
यासेटलोकेल (एलसी_CTYPE, "de_DE.UTF8") या सेटलोकेल (एलसी_सीटीवाईई, "de_DE.UTF-8")?
setlocale(LC_CTYPE, "de_DE.UTF-8")
के साथ या पानी का छींटा के बिना
? मैंने जवाब में दोनों को देखा है।
setlocale(LC_CTYPE, "de_DE.UTF8")
यासेटलोकेल (एलसी_CTYPE, "de_DE.UTF8") या सेटलोकेल (एलसी_सीटीवाईई, "de_DE.UTF-8")?
setlocale(LC_CTYPE, "de_DE.UTF-8")
के साथ या पानी का छींटा के बिना
? मैंने जवाब में दोनों को देखा है।
मैं locale -a
चलाने के लिए और स्ट्रिंग यह आउटपुट का उपयोग करेंगे के लिए। ओएस एक्स 10.9 पर, मुझे de_DE.UTF-8
मिलता है। डेबियन 6 पर, मुझे मिलता है। dpkg-reconfigure locales
दूसरी तरफ de_DE.UTF-8
का उपयोग करता है। सबसे सुरक्षित तरीका शायद setlocale
के वापसी मूल्य की जांच करना है और यदि यह विफल रहता है तो विभिन्न प्रकारों को आजमाएं।
उसने कहा, सभी संस्करणों को आम तौर पर काम करना चाहिए: डैश, अपरकेस या लोअरकेस के साथ या बिना।
एन्कोडिंग का नाम यूटीएफ -8 है।
लेकिन इस मामले में दोनों मापदंडों सही कर रहे हैं और वे एक ही काम कर रहे हैं आप
प्रोग्रामिंग को हल करने के लिए यहां एक व्यावहारिक समाधान है। जब setlocale
विफल रहता है, तो यह झूठा होता है।
if (!setlocale(LC_ALL, str_replace('utf-8', 'utf8', $locale))
&& !setlocale(LC_ALL, str_replace('utf8', 'utf-8', $locale))) {
/* fail gracefully */
}
/* your locale has been set up properly
मेरे मामले में एक हमारे Macs पर काम करेगा और अन्य लिनक्स सीआई बक्से पर काम करेगा, तो यह समाधान परीक्षण दोनों को पास कर देता है।
बीटीडब्ल्यू; एलसी_ओएल से सावधान रहें। सबसे कमजोर दायरे के लिए लोकेल को सेट करें जिसकी आपको आवश्यकता है।
आप वास्तव में setLocale()
पर मानों की एक सरणी पास कर सकते हैं। मैंने ओएसएक्स पर विकास करते समय और लिनक्स पर चल रहे होस्टिंग पर परीक्षण करते समय इस समस्या में भाग लिया है। तो अब मैं यह करता हूं: setLocale(LC_ALL, ["de.utf", "de_DE.utf", "de_DE.UTF-8", "de", "de_DE"])
मिलान करने वाला पहला व्यक्ति एक जाना है। डॉक्स: https://secure.php.net/setlocale
बिल्कुल सही। मेरे पास डेबियन जीएनयू/लिनक्स 6.0.9 (निचोड़) 'और 'लोकेल-ए' आउटपुट' de_DE.utf8' है - सौ अन्य लोगों के बीच। –
@ व्हाट 'लोकेल-ए | grep -i de_de' मदद चाहिए। – sjas