php解決中文字符串截取的亂碼問題

utf8字符集中:

佔2個字節的:〇
佔3個字節的:基本等同於GBK,含21000多個漢字
佔4個字節的:中日韓超大字符集裏面的漢字,有5萬多個


用substr()函數進行截取有可能不到位,下面附上能解決問題的源碼(基於大多數漢字):

<?php
function utf_substr($str,$len)
{
    for($i=0;$i<$len;$i++)
    {
        $temp_str=substr($str,0,1);
        if(ord($temp_str) > 127)
        {
            $i++;
            if($i<$len)
            {
                $new_str[]=substr($str,0,3);
                $str=substr($str,3);
            }
        }
        else
        {
            $new_str[]=substr($str,0,1);
            $str=substr($str,1);
        }
    }
    return join($new_str);
}
$str = "黃剛總經理在參加集團公司安全生產大檢查總結視頻會後要求 抓好問題整改";
echo utf_substr($str,34);
?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章