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