PHP 擷取中文字串亂碼問題

2021-06-09 20:41:44 字數 531 閱讀 9613

function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) 

|[\xf0-\xff][\x80-\xbf]/";

$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";

$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";

$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";

preg_match_all($re[$charset], $str, $match);

$slice = join("",array_slice($match[0], $start, $length));

if($suffix) return $slice."…";

return $slice;

}

PHP實現中文字串擷取無亂碼

ascii碼 乙個中文漢字佔兩個位元組的空間。utf 8編碼 乙個中文 含繁體 等於三個位元組。unicode編碼 乙個中文 含繁體 等於兩個位元組。我們寫頁面基本都是utf 8編碼 echo substr php中文網 0,5 substr 返回字串子串 substr 第乙個引數是要擷取的字串,第...

php中文字串擷取亂碼問題解決

其實下面的方法1 2現在不推薦了,參照 方法1 字串編碼為utf 8的,乙個中文字元佔三個位元組 public static function chinesesubstr str,start,len else return tmpstr 返回字串 方法2 字串編碼為gb2312的,乙個中文字元佔兩個...

解決PHP擷取中文字串問題

php擷取字串如果是英文那很好辦,直接用substr就行了,一般不會出現亂碼.中文就有點麻煩了.下面給出兩種解決辦法 一 直接使用multi byte函式庫的mb substr 函式就行了,例項 如下 php echo mb substr str start length encoding echo...