求教,如何判断是否是低字节?
程序员文章站
2022-05-06 18:04:10
...
0xa0) { $temp.=substr($str,$i,2); $i++; }else { $temp.=substr($str,$i,1); } } return $temp;}echo substr_gbk($str,1,10); //从高字节截取正常echo substr_gbk($str,2,10); //从低字节截取出现乱码?>
以上代码从高字节截取没有问题,但如果从低字节截取出现乱码
请问有知道如果判断高低字节的办法吗?
回复讨论(解决方案)
$str="j这是ces测试dkfjdksj"; function substr_gbk($str,$start,$end){ $temp=""; for($i=0; $i0xa0) $i++; //加上这行 for(;$i0xa0) { $temp.=substr($str,$i,2); $i++; }else { $temp.=substr($str,$i,1); } } return $temp;} echo substr_gbk($str,1,10); //这是ces测试echo substr_gbk($str,2,10); //是ces测试
定 0xa0 的准则是什么?
gb2312 字节内码从 0xa1 开始
定 0xa0 的准则是什么?
就是从0xa1也一样是乱码啊
0xa0) { $temp[]=substr($str,$i,2); $i++; }else { $temp[]=substr($str,$i,1); } } return implode("",array_slice($temp,$start,$end));}print_r(substr_gbk($str,0,3));?>
用这个土办法倒是可以,效率太低
大家有什么好办法吗
gb2312 字节内码从 0xa1 开始
定 0xa0 的准则是什么?
我就奇怪,他用的是gbk,遇到81开头的汉字怎么办?
gb2312 字节内码从 0xa1 开始
定 0xa0 的准则是什么?
我就奇怪,他用的是gbk,遇到81开头的汉字怎么办?
嗯 老大咱别纠结这个问题行吗 您告诉我怎么判断如果是截取到低字节如何判断就行了 谢谢了
还以为你研究算法呢,用mb_substr
还以为你研究算法呢,用mb_substr
这个试过了,不行的
您试下
mb_substr($str,1,5 ,'gbk')