PHP从Mysql查出来的数据转换成json格式中文乱码怎么解决

$conn=connectDb();$result=mysql_query('select*fromusersORDERbyidDESC');$datacount=mys... $conn=connectDb();
$result=mysql_query('select * from users ORDER by id DESC ');
$datacount=mysql_num_rows($result);
for ($i=0;$i<$datacount;$i++){
$result_arr=mysql_fetch_array($result);
$json=array(
'id'=>$result_arr['id'],
'name'=>$result_arr['name'],
'$age'=>$result_arr['age']
);
$id=$result_arr['id'];
$name=$result_arr['name'];
$age=$result_arr['age'];
echo "<tr><td>$id</td><td>$name</td><td>$age</td><td><a href='edituser.php?id=$id'>修改</a><a href='deletuser.php?id=$id'>删除</a></td></tr>";
}
echo json_encode($json);
展开
 我来答
柚子ok丶
2017-05-16 · TA获得超过815个赞
知道小有建树答主
回答量:646
采纳率:93%
帮助的人:187万
展开全部

解决办法是在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来。具体如下:

//urlencode处理
function json_array($obj) {
    foreach($obj as $key => $value) {
        if(is_array($obj[$key])) {
            $obj[$key] = json_array($obj[$key]);
        }else{
            $obj[$key] = urlencode($value);
        }
    }
    return $obj;
}
//urldecode解密转换为中文字符
function _json($obj) {
    return urldecode(json_encode(json_array($obj)));
}

echo _json($json);//$json为你要输出的json数组

此处递归调用是为了处理多维数组······

闲置星空
2017-05-16 · TA获得超过158个赞
知道小有建树答主
回答量:129
采纳率:100%
帮助的人:31.4万
展开全部
在PHP5.4, Json新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json不要编码Unicode。echo json_encode($json, JSON_UNESCAPED_UNICODE);
找了篇文档可以参考下:http://blog.csdn.net/bjash/article/details/9834497
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式