我用PHP从mysql取出数据然后转Json,但是为什么中文显示的是问号

如题所述

用PHP的json_encode来处理中文的时候, 中文都会被编码成Unicode

echo json_encode("中文");//"\u4e2d\u6587"

解决方式是加上JSON_UNESCAPED_UNICODE

echo json_encode("中文", JSON_UNESCAPED_UNICODE);//"中文"

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-05-27
因为你的数据库编辑没有设置正确,
数据库编码一般设为 : utf8 (没有 '-')
第2个回答  2017-05-27
he was happy to find so many.

PHP从Mysql查出来的数据转换成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...

PHP查询MYSQL,返回JSON格式?
执行查询并获取结果:•使用MySQLi或PDO连接数据库并执行SQL查询。•获取查询结果集。处理结果集:•如果结果集是以对象形式获取的,可以直接使用json_encode()函数将其转换为JSON字符串。•如果结果集是以数组形式获取的,则需要先将每一行数据转换为关联数组或对象。转换为JSON字...

PHP从mysql中取出多组数据 如何加入数组中并转成JSON数组
首先定义一个数组,然后遍历数据表,把相应的数据放到数组中,最后通过json_encode()转化数组 json_encode() 函数的功能是将数值转换成json数据存储格式。例如:<?php \/\/定义一个数组,用于保存读取到的数据 array = array();query = mysql_query("select * from table");\/\/遍历数据表 while($rows...

php查找MySQL中某张表的数据,如何封装为json数组?
echo json_encode($output);\/\/输出查询到的数据

php将数据库查询的数据转换为json格式,为什么返回的格式前面有0 1 2...
稍微改一下你的自定义函数 function my_json_sql($my_sql){$result = mysql_query($my_sql);\/\/判断执行结果if($result && mysql_affected_rows()>0){\/\/先声明一个空数组$arr=array();\/\/循环处理结果while($row = @mysql_fetch_assoc($result)){$arr[]=$row;}return $arr;}return ...

mysql数据库中的中文不能转化为json
注意有三个编码要设置:数据库存中文的编码,改成utf-8;读数据库时,连接方式编码,改成utf-8;显示页面的ecoding编码,改成utf-8。

mysql数据库中某个字段存的是json数据,如何对json数据中的数据进行操...
这个可以吧json格式的字符串解析成数组json_decode()函数,变成数组以后就可以方便操作了,可以删除数组中的任意一项,也可以增加一项比如:array_push($data,['sort'=>3,'catentryId'=>10003]),再变成json格式的存入数据库。方法有多种,这里简单的示例下 ...

帮我看看这段php为何取出的值只有一行,while ($row = $GLOBALS['db...
从数据库查询后的集合中读取一行数据到 变量 $row 中,如果已经到了最后(也就是没有数据了)将返回 false,循环结束 例如:r=mysql_query("select * from comment_tmp ");while($tmp=mysql_fetch_assoc($r)){ \/\/ 循环处理查询出的结果 } 只能显示一行:应该是最后一行,因为前面的数据都...

我把一组json数组存入mysql数据库,现在需要php输出怎么输出?
你这哪是json,这是序列化,用unserialize反序列化就可以得到数组,然后就可以根据键名来取 如果你一定要这种字符串来取,那只能正则 preg_match('\/"logo".*"(.*)"\/U', $str, $match);$match[1]就是你要的值

怎么将PHP查询的多条数据封装成数组 并且转为json的数据格式
正常来说,循环赋值是没问题的,你需要看下,你的sql在数据库中能查出几条结果,最好数组还是这样定义$arr = array();而不是$arr[] = array();简单的测试你数据是否只有一条的方法是在while里边打印个东西 echo $sql;\/\/打印下你的sql语句,用phpmyadmin执行下看结果 cnt=1;while($row = $db...

相似回答