这两天自己做了个公共API接口,遇到了一个很烦人的bug,就是接口传回了json字符串,但是本地的后台在获取字符串后,用json_decode()转码的话返回NULL。
在网上找了很多办法,最后终于用
这个函数搞定了!被这个问题困扰的朋友不妨试一下哦!
trim($result,chr(239).chr(187).chr(191))
这个函数搞定了!被这个问题困扰的朋友不妨试一下哦!
原因就是UTF-8的DOM头影响,用trim($result,chr(239).chr(187).chr(191))切割掉字符串前面的BOM头就可以正常转码了。
代码:
$result = getAPIData($url);
$result = trim($result,chr(239).chr(187).chr(191));
$result = json_decode($result,true);
附:BOM头的另一种解决方案:
$result = getAPIData($url);
$result = substr($result,3);
$result = json_decode($result,true);