php解决接口使用json_encode返回数组时,中文变成了unicode编码(出现乱码)问题

分享于:2021-05-12 16:59:29

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

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

原代码:

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


效果如下:



来源:https://blog.csdn.net/qq15577969/article/details/103045468