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); 展开
$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); 展开
2个回答
展开全部
解决办法是在使用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数组
此处递归调用是为了处理多维数组······
展开全部
在PHP5.4, Json新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json不要编码Unicode。echo json_encode($json, JSON_UNESCAPED_UNICODE);
找了篇文档可以参考下:http://blog.csdn.net/bjash/article/details/9834497
找了篇文档可以参考下:http://blog.csdn.net/bjash/article/details/9834497
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询