PHP从Mysql查出来的数据转换成json格式中文乱码怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP从Mysql查出来的数据转换成json格式中文乱码怎么解决相关的知识,希望对你有一定的参考价值。
$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);
解决办法是在使用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数组
此处递归调用是为了处理多维数组······
参考技术A 在PHP5.4, Json新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json不要编码Unicode。echo json_encode($json, JSON_UNESCAPED_UNICODE);找了篇文档可以参考下:http://blog.csdn.net/bjash/article/details/9834497
以上是关于PHP从Mysql查出来的数据转换成json格式中文乱码怎么解决的主要内容,如果未能解决你的问题,请参考以下文章