文章归档友情连接

解决 Json 中文转码问题

分类:PHP编程  作者:rming  时间:2014-07-26

解决 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":"成功"}


  1. echo json_encode("中文", JSON_UNESCAPED_UNICODE);// require 5.4+

提交评论