💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
使用PHP开发网站的时候经常要截取字符串,肯定不可避免的会出现乱码,而且UTF8编码和GBK编码的网页,乱码形式还不一样,所以我根据自己以往的工作经验,总结了不同编码格式下PHP截取字符串避免乱码的方法。 1、UTF8编码的网页(每个中文代表3个字节) <?php header('content-type:text/html;charset="utf-8"'); $str = '内容测试http://www.baidu.com; $newStr = substr($str,0,15); $len = strlen($newStr); $num = 0; for($i=0; $i<$len; $i++){ if(ord($newStr[$i])>127){ $num+=1; } } if($num%3==1){ $len+=2; }else if($num%3==2){ $len+=1; }else{ $len+=0; } echo substr($str,0,$len).'<br/>'; ?> 2、GBK编码的网页(每个中文代表2个字节): <?php header('content-type:text/html;charset="gb2312"'); $str = '内容测试http://www.baidu.com'; $newStr = substr($str,0,16); $len = strlen($newStr); $num = 0; for($i=0; $i<$len; $i++){ if(ord($newStr[$i])>127){ $num+=1; } } if($num%2!=0){ $len+=1; } echo substr($str,0,$len).'<br/>'; ?>