php中出现中文字符截取防乱码如何解决

  

php中出现中文字符截取防乱码如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

首先第一种,自己写好的一个函数方便使用
利用这个函数截取就不会出现乱码了。

/* *,   ,*支持中文字符串截取,   ,*/function  msubstr (str美元,美元开始=0,,长度,美元,美元charset=皍tf-8",,后缀美元=true) {,   开关(字符集美元){才能,   ,,,case  & # 39; utf - 8 # 39;: char_len=3美元;打破,,   ,,,case  & # 39; use utf8 # 39;: char_len=3美元;打破,,   ,,,默认值:char_len=2美元;,   ,,},//小才能于指定长度,直接返回,   如果才能(strlen (str) & lt;=(长度* char_len美元)){,,   ,,,return  str;美元,   ,,},   如果才能(function_exists (“mb_substr")) {,,   ,,,$片=,mb_substr (str美元,美元开始,,长度,美元,美元字符集),,   }才能else 如果(function_exists (& # 39; iconv_substr& # 39;)) {,   ,,,$片=iconv_substr (str,美元开始,长度,美元字符集),,   其他,}{大敌;   ,,,美元重新[& # 39;utf - 8 # 39;],,=,“/[\ x01 - \ x7f] | [\ xc2 - \ xdf] [\ x80 - \ xbf] | [\ xe0 - \ xef] [\ x80 - \ xbf] {2} | [\ xf0 - \ xff] [\ x80 - \ xbf] {3}/,,,   ,,,美元重新[& # 39;gb2312 # 39;],=,“/[\ x01 - \ x7f] | [\ xb0 - \ xf7] [\ xa0 -以\ xfe]/,,,   ,,,美元重新[& # 39;gbk # 39;],,=,“/[\ x01 - \ x7f] | [\ x81 -以\ xfe][以——\ \ x40 xfe]/,,,   ,,,美元重新[& # 39;繁体# 39;],,=,“/[\ x01 - \ x7f] | [\ x81 -以\ xfe] ([\ x40 - \ x7e] | \ xa1 -以\ xfe])/,,,   ,,,preg_match_all (re(字符集)美元,美元,str美元,$匹配),,   ,,,slice 美元;=,加入(““,array_slice(匹配[0],美元,美元开始,长度)美元),,   ,,},   如果才能(后缀),   ,,,return 美元片,,   return 才能;美元片,   }

第二种是php内置的一个函数mb_substr函数

指定要截取的字符串的编码格式,就能有效的防止出现乱码了。

说明

string  mb_substr  (, string  str 美元;,,int  start 美元;[,int  length 美元;[,string  encoding 美元;]],),   & lt; ? php    ,function  substr_unicode (str美元,,,,l 美元;=,null), {,   ,,return 加入(““,,array_slice (,   ,,,,preg_split (“//u",, str美元,,1,,PREG_SPLIT_NO_EMPTY),,,美元,美元l)),,   }大敌;   ,   时间=美元str “Buyuk",,   ,s 美元;=,0,,//,start 得到“0“,(n), char    ,l 美元;=,3,,//,get “3“, chars    ,echo  substr (str美元,,,,l)美元,干净\ n",,,   ,echo  mb_substr (str美元,,,,l)美元,干净\ n",,   ,echo  substr_unicode (str美元,,,,美元l),,   ,?在

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

php中出现中文字符截取防乱码如何解决