substr截取中文字符時會出現亂碼

使用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′));字符編碼

相關文章
相關標籤/搜索