mb_internal_encoding('UTF-8')अपने आप कुछ नहीं करता, यह केवल प्रत्येकmb_. के लिए डिफ़ॉल्ट एन्कोडिंग पैरामीटर सेट करता है समारोह। यदि आप किसीmb_का उपयोग नहीं कर रहे हैं समारोह, इससे कोई फर्क नहीं पड़ता। यदि आप हैं, तो इसे सेट करना समझ में आता है ताकि आपको$encodingपास न करना पड़े हर बार अलग-अलग पैरामीटर।- IMO
mb_detect_encodingज्यादातर बेकार है क्योंकि अज्ञात पाठ के एन्कोडिंग का सटीक रूप से पता लगाना मूल रूप से असंभव है। आपको या तो पता होना चाहिए कि टेक्स्ट का एक ब्लॉब किस एन्कोडिंग में है क्योंकि आपके पास इसके बारे में एक विनिर्देश है, या आपको उपयुक्त मेटा डेटा जैसे हेडर या मेटा टैग को पार्स करने की आवश्यकता है जहां एन्कोडिंग निर्दिष्ट है। mb_check_encodingका उपयोग करना यह जांचने के लिए कि क्या टेक्स्ट का एक ब्लॉब उस एन्कोडिंग में मान्य है जिसमें आप उम्मीद करते हैं कि यह आम तौर पर पर्याप्त है। अगर ऐसा नहीं है, तो इसे फेंक दें और उचित त्रुटि दें।-
के बारे में:
यदि आप स्ट्रिंग्स में हेरफेर कर रहे हैं जिसमें मल्टीबाइट वर्ण हैं, तो हाँ, आपको
mb_का उपयोग करने की आवश्यकता है गलत परिणाम प्राप्त करने से बचने के लिए कार्य करता है। कोर स्ट्रिंग फ़ंक्शन केवल बाइट स्तर पर काम करते हैं, वर्ण स्तर पर नहीं, जो कि आप आमतौर पर स्ट्रिंग्स के साथ काम करते समय चाहते हैं। utf8_general_ciबनामutf8_binकेवल मिलान करने . से ही फर्क पड़ता है , यानी स्ट्रिंग्स को सॉर्ट करना और तुलना करना।utf8_bin. के साथ डेटा को बाइनरी रूप में माना जाता है, यानी केवल समान डेटा समान होता है।utf8_general_ci. के साथ कुछ तर्क लागू होते हैं, उदा। "é" को "e" के साथ मिला कर सॉर्ट किया जाता है और अपर केस को लोअर केस के बराबर माना जाता है।