欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于json重mysql读取数据问题

程序员文章站 2022-06-09 23:26:24
...
php json javascript //连接数据库代码
$conn=mysql_connect("127.0.0.1","root","root") or die("连接数据库失败!");
mysql_select_db("resume2",$conn) or die("没有该数据库!");
mysql_query("SET NAMES utf8");

//将一个数组保存到数据库
$value=array("name"=>$_POST['job_name']);
$var=json_encode($value);
mysql_query("INSERT INTO `resume`(`job_id`, `job_pass_status`,job_content`)VALUES(NULL,1,'$var')",$conn);

//然后再从数据库读取刚才存入的数据
$query=mysql_query("SELECT * FROM `resume` WHERE `job_id`=10"); //刚才存入的id为10
$row=mysql_fetch_array($query);
$num=json_decode($row['job_content'],true);
echo $num['name'];

//问题,当我job_name为"张小白",输出$num['name']为"u6234u660eu534e",请大神看看哪里出问题了。为什么输出的不是"张小白这个名字呢?"

回复讨论(解决方案)

json只接受utf-8编码的字符,确认你的页面是utf-8编码。

json只接受utf-8编码的字符,确认你的页面是utf-8编码。

我在创建项目和html文件的时候是统一用utf-8的,用json_encode转码后保存到数据库,比如我写入的是"张小白",但是在数据库却是
"u6234u660eu534e"这样形式。读取数据库也只能读到"u6234u660eu534e"这个,不知道怎么将其转成"张小白"这种中文编码。

echo $_POST['job_name']; //正常吗

echo $_POST['job_name']; //正常吗

正常的

为什么是“张小白”呢?

$s = '"\u6234\u660e\u534e"';
echo json_decode($s); //戴明华

echo json_encode('张小白'); //"\u5f20\u5c0f\u767d"

可见您并没有准确的描述您的问题

问题,已得到解决。是mysql转意问题