解决 Json 中文转码问题

//代码

$data = array(

'status'=>'1',

'method'=>'登陆',

'message'=>'成功',

);

echo json_encode($data);

//显示

{"status":"1","method":"\u767b\u9646","message":"\u6210\u529f"}

json_encode 只能接受utf-8格式的数据,最终的json中中文部分被替换为unicode编码。我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现。

先将类中的中文字段进行url编码(urlencode),然后再对对象进行json编码(jsonencode),最后url解码(urldecode)json,即最终的json,里面的中文依旧是那个中文。

//代码

foreach ( $data as $key => $value ) {

    $newData[$key] = urlencode ( $value );

}

echo urldecode(json_encode($newData));

//显示

{"status":"1","method":"登陆","message":"成功"}

评论已经关闭。