作者:美美琳子_899 | 来源:互联网 | 2020-12-12 14:22
php中文截取乱码的解决办法:首先利用ASCII编码和中文编码的二进制范围不一致而把它们区分开来;然后通过【substr()】截取字符串的函数实现的。
=$length){
return $str;
}
//初始化,统计字符串的个数,
$count = 0;
for($i=0;$i<$length;$i++){
//达到个数跳出循环,$i即为要截取的长度
if($count == $len){
break;
}
$count++;
//ord函数是获取字符串的ASCII编码,大于等于十六进制0x80的字符串即为中文字符串
if(ord($str{$i}) >= 0x80){
$i +=2;//中文编码的字符串的长度再加2
}
}
//如果要截取的个数超过了字符串的总个数,那么我们返回全部字符串,不带省略号
if($len > $count){
return $str;
}else{
return substr($str,0,$i).&#39;...&#39;;
}
}
以上代码的实现就是利用单字节字符的ASCII码小于0x80。至于要跳过几个字节,这要看具体是什么编码。
相关免费学习推荐:php编程(视频)
以上就是php中文截取乱码怎么办的详细内容,更多请关注 第一PHP社区 其它相关文章!