json_decode对于英文估计返回都是正常的但有些朋友碰到中文时会就发现返回为null或空了,下面我来给各位朋友简单介绍此问题解决方法.
今天在做一个东西的时候需要抓取淘宝的一些数据,找到了请求的url,返回了一个callback,看了下callback中的参数是一个对象,通过正则匹配去到了数组,但是在使用json_decode()转换的时候返回的是NULL,老郁闷了,前一段时间要做一个东西也是因为这个原因,没有成功的把json对象转换成php的数组,放弃了,今天又遇到了,终于找到了解决的办法.
原因在于:抓取的数数据是是GBK格式,通过抓包看到,返回的header头中,代码如下:
Content-Type:text/html;charset=GBK
这个时候用icvo转码下,然后在json_decode()就可以正常转换了,代码如下:
iconv('gbk','utf-8',$data[1][0]);//phpfensi.com
这里还需要主要的是你php代码文件的格式,建议是utf-8无bom头. |