使用substr截取中文字符时会出现乱码,这是由于substr是按字节来截取的。即UTF-8编码的中文,使用substr截取,只会截取1/3个中文,固然出现乱码了。函数
一.string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )编码
encoding 参数为字符编码。若是省略,则使用内部字符编码。 返回值: mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分字符串
echo mb_substr('中国你好',0,2,‘UTF-8’); 字符串必须为UTF-8编码格式string
若是不清楚字符串的编码格式的话,能够用mb_detect_encoding检查: $encoding = mb_detect_encoding($string, array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′));字符编码