2011-05-11 18 views
24

के लिए strtoupper PHP फ़ंक्शन मैं strtoupper() PHP फ़ंक्शन के लिए उपयोगकर्ता टिप्पणियां पढ़ रहा हूं और गैर-एनिलिश स्ट्रिंग के लिए रूपांतरण कैसे करें इस पर सहमति नहीं है। मेरा मतलब है कि लोग स्थानीय समाधान और सामान प्रदान करते हैं, लेकिन स्ट्रिंग को सभी ऊपरी (या सभी निचले) केस अक्षरों में बदलने के लिए एक समान तरीका नहीं होना चाहिए?यूटीएफ -8 स्ट्रिंग

तो मेरा सवाल यह है कि, अगर मेरे पास यूटीएफ -8 एन्कोडेड स्ट्रिंग है (कुछ अज्ञात लोकेल में) मैं इसे PHP में सभी ऊपरी/निचले अक्षरों में कैसे परिवर्तित करूं?

उत्तर

48

आप mb_strtoupper का उपयोग करना चाहते हैं।

$str = "Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός"; 
$str = mb_strtoupper($str, "UTF-8"); 
echo $str; // Prints ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ 

PHP.net कहता है:

ऐसे strtolower के रूप में मानक मामले तह कार्यों के लिए इसके विपरीत() और strtoupper(), मामले तह यूनिकोड चरित्र गुणों के आधार पर किया जाता है । इस प्रकार इस फ़ंक्शन का व्यवहार लोकेल सेटिंग्स से प्रभावित नहीं है और यह 'वर्णमाला' गुण, जैसे ए-umlaut (Ä) को परिवर्तित कर सकता है।

0

क्या आपने this को आजमाया है? मैं कोई भाषाई नहीं हूं, लेकिन मुझे लगता है कि सभी भाषाओं में निचला/ऊपरी मामला विभाजित नहीं है।

+1

कम से कम नहीं। उदाहरण के लिए 'ß' में कोई अपरकेस नहीं है :) – KingCrunch

+0

हर भाषा? चीनी या अरबी के बारे में क्या। अरबी में आपके पास प्रत्येक चरित्र के लिए तीन संस्करण हैं, सभी वर्णों में सभी तीन समूहों में समान संस्करण नहीं है, ग्रीक में एक पत्र है जिसमें प्रारंभिक (यह हमारा अपरकेस) सामान्य और अंतिम संस्करण – rsk82

+0

@ rsk82 है - वह सही कहता है * ऐसा नहीं होगा *। – arviman

1

उपयोग mb_strtoupper($text)strtoupper($text) के बजाय :) हर चरित्र के लिए

+1

इस उत्तर से यह अलग कैसे है? http://stackoverflow.com/a/5969837/670017 – ahmd0

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