青岛做网站
        行业新闻
行业新闻
当前位置:首页> 新闻动态 > 行业新闻

如何避免截取中文字符串时出现乱码

更新时间:2019-03-04
   在我们进行网站开始时,有时为了保持整个网站页面的不及,经常需要对一些比较长的字符串进行截取,但是由于汉字中文字符占用两个字符,如果截取位置不当,将会导致截取的字符串末尾出现乱码,

   其实,截取字符串时我们会经常用到substr()函数来对普通字符串进行截取操作,对于普通字符串来说使用substr()函数也是非常方便的,但是对全角字符进行截取时会产生乱码。为了解决和避免截取中文字符串时出现乱码问题,我们可以通过自定义函数chinesesubstr()来屏蔽乱码,该函数的代码如下:

<?php

 function chinesesubstr($str,$start,$len) {   //$str指字符串,$start指字符串的起始位置,$len指字符串长度

    $strlen=$start+$len;                                      //$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度

    for($i=0;$i<$strlen;$i++) {                                                  

        if(ord(substr($str,$i,1))>0xa0) {       //如果字符串中首个字节的ASCII序数值大于0xa0,则表示汉字

            $tmpstr.=substr($str,$i,2);         //每次取出两位字符赋给变量$tmpstr,即等于一个汉字

            $i++;                                                //变量自加1

        }

      else

            $tmpstr.=substr($str,$i,1);             //如果不是汉字,则每次取出一位字符赋给变量$tmpstr

    }

    return $tmpstr;                                          //返回字符串

}

?>

以上就是自定义函数chinesesubstr(),假如我们要使用这个函数来截取标题长度为100个字节,代码如下:

chinesesubstr($title,0,100)

这样在使用chinesesubstr()截取字符串时就可以避免截取中文字符串时出现乱码的问题。

 

 

免责声明:本站所有资讯内容搜集整理于互联网或者网友提供,并不代表本网赞同其观点,仅供学习与交流使用,如果不小心侵犯到你的权益,如果你对文章内容、图片和版权等问题存在异议,请及时联系我们删除该信息。