PHP內置的字符串長度函數strlen()無法正確處理中文字符串,它得到的只是字符串所占的字節數。對於GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對於UTF-8編碼的中文,就是3倍的差異了(在UTF-8編碼下,一個漢字占3個字節)。
<html> <meta charset="utf-8"> <body> <?php $name="鳴人"; print "姓名的長度為:".mb_strlen($name,"utf-8"); ?> </body> </html> 這是的輸出結果即為:姓名的長度為:2
mb_strlen的用法和strlen類似,只不過它有第二個可選參數用於指定字符編碼。
要注意的是,mb_strlen並不是PHP核心函數,使用前需要確保在php.ini中加載了php_mbstring.dll,即確保“extension=php_mbstring.dll”這一行存在並且沒有被注釋掉,否則會出現未定義函數的問題。