在项目开发过程中,经常需要对数组数据进行 json_encode() 操作,但是却发现对应的json数据中本来是中文字符串的数据变为了 Unicode 字符串。
原代码:
if($flag){ $result = ['code'=>1,'msg'=>"发送成功"]; }else{ $result = ['code'=>0,'msg'=>"发送失败"]; } echo json_encode($result); exit;
问题如下:
在 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