strlen和mb_strlen区别

$str='中文a字1符';
echo strlen($str).'<br>';                            //14
echo mb_strlen($str,'utf8').'<br>';            //6
echo mb_strlen($str,'gbk').'<br>';            //8
echo mb_strlen($str,'gb2312').'<br>';      //10

结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14
在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6

需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载 了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题。

你可能感兴趣的:(strlen和mb_strlen区别)