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格式中文乱码怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

怎么把数据库里面的数据取出来转换成json格式。急!!!

PHP从mysql中取出多组数据 如何加入数组中并转成JSON数组

Tree树 递归查询,显示成JSON格式

php转换成json数据格式

怎样在java中查询mysql得到如下的json格式的结果

MySQL 数据从 PHP 到带有 JSON 的 Javascript