前言

在项目开发过程中,经常需要对数组数据进行 json_encode() 操作,但是却发现对应的json数据中本来是中文字符串的数据变为了 Unicode 字符串。

1、先来看一下原代码和遇到的问题

原代码:

if($flag){
	$result = array('code'=>1,'msg'=>"发送成功");
}else{
	$result = array('code'=>0,'msg'=>"发送失败");
}
echo json_encode($result);
exit;

问题如下:

2、解决方法

在 PHP5.4 版本以后,官方更新了 json_encode() 的特性:若希望经过json_encode()处理后的中文字符串不变为乱码,可以设置函数的第二个参数为:JSON_UNESCAPED_UNICODE 

echo json_encode($arrData, JSON_UNESCAPED_UNICODE);

新代码:

if($flag){
	$result = array('code'=>1,'msg'=>"发送成功");
}else{
	$result = array('code'=>0,'msg'=>"发送失败");
}
header('Content-Type:application/json; charset=utf-8');
echo json_encode($result, JSON_UNESCAPED_UNICODE);
exit;

 效果如下:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐