在经过别人接口请求信息的时候,偶尔会遇到因为部分字符,如如下状况,则经过json_decode是会返回null的php
可是这种状况一般不是因为总体编码的问题,由于在解析的时候就是以utf-8的编码解析的json
这种状况一般会是中英文并存,可是部分空白字符没法识别。curl
经过对系统逻辑的观察,应该是因为前段保存字符的时候出现了非utf-8可以识别的字符,这种状况在json_encode中并不受影响,因此直接致使了接口获取数据的时候出现非法字符编码
解决方案:url
$return_data=mb_convert_encoding($return_data, "UTF-8","UTF-8");
对经过curl请求回来的字符在进行一次强制编码,这种状况下本来的utf-8编码的文字不会受到影响,同时utf-8没法识别的字符将会被强制解析,解析出来以后的字符就会变成英文符号的? ,code
这样就可以顺利的json_decode 了blog