在做接口请求的时候,用得比较多的是json格式,我们往往需要把提交是数据转化为json格式,用json_encode可以直接转化,但是有一个问题就是,直接转化后的中文也发生了变化,变为“\xxx\xxxx\xxx”这样的格式,在接口获取数据的时候就判断不对了。那么就要利用json_encode进行参数处理,让json更懂中文(JSON_UNESCAPED_UNICODE),保存中文的格式:
function JsonEncode($array)
{
if(version_compare(PHP_VERSION,'5.4.0','<')){
$str = json_encode($array);
$str = preg_replace_callback("#\\\u([0-9a-f]{4})#i",function($matchs)
{
return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1])); },$str);
return $str;
}else{
return json_encode($array, JSON_UNESCAPED_UNICODE);
}
}
这样既做到了低版本对JSON_UNESCAPED_UNICODE的兼容,也对转化的array保留中文不乱。
调用方式很简单:
$kf_account =trim($this->data['account']).'@xxxx168';
$nickname =trim($this->data['nickname']);
$data = array("account"=>$kf_account,"nickname"=>$nickname);
$json_data =JsonEncode($data);然后我们可以进行相应的CURL操作了。