2010-09-04 19 views
5

PHP में यूटीएफ -8 स्ट्रिंग की लंबाई की गणना करते समय मैं mb-strlen() का उपयोग करता हूं।mb_strlen() क्या यह पर्याप्त है?

उदाहरण के लिए:

if (mb_strlen($name, 'UTF-8') < 3) { 
    $error .= 'Name is required. Minimum of 3 characters required'; 
} 

पाठ फ़ील्ड किसी भी भाषा (बहुभाषी) स्वीकार कर सकते हैं के रूप में, मुझे यकीन है कि पीएचपी mutltilanguage UTF-8 वर्णों को सही ढंग से गणना की जाएगी बनाना चाहते हैं।

क्या यह पर्याप्त है या मुझे अन्य विधियों का उपयोग करने की आवश्यकता है? मुझे चिंता है कि PHP किसी कारण से गलत हो सकता है, या शायद मैं संदेह कर रहा हूं, लेकिन मैं नहीं चाहता कि लोग महत्वपूर्ण सत्यापन को छोड़ दें क्योंकि PHP इसे गलत कर रहा है।

उत्तर

18

सही

if (mb_strlen($name, 'UTF-8') < 3) is sufficient enough 

सुनिश्चित करें कि शीर्ष लेख सही है

HTTP-header (Content-Type: text/html; charset=UTF-8) 

आप भी किसी कारण

strlen(utf8_decode($string)) 

UTF-8 to Code Point Array Converter in PHP

के लिए विकल्प की जाँच कर सकते
+0

धन्यवाद JapanPro। मेरा HTTP-header ठीक है धन्यवाद। उस लिंक को चेक आउट करेगा। तो मुझे लगता है कि mb_strlen() पर भरोसा किया जा सकता है क्योंकि मेरे http शीर्षलेख जैसा आपने ऊपर कहा है? धन्यवाद! – PHPLOVER

1

को JapanPro के जवाब इसके अलावा:
आपका HTML हो सकता है:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

एक अंतर्निहित हैडर घोषणा के बजाय:

HTTP-header (Content-Type: text/html; charset=UTF-8)