干货分享(php输出json中文乱码)json数据中文乱码怎么办,解决 php json中文乱码的问题,解决 php json中文乱码的问题,
php输出使用json_encode函数生成的json数据的时候,发现数据中的中文被转义成了unicode编码,如果使用ajax请求的json数据还好一点,浏览器会自动将unicode编码转义回来,但如果直接输出到浏览器上,那就会直接输出 unicode 编码,影响阅读体验。
解决php json_encode函数中文被转义的方法
这篇博文不考虑页面编码的问题,只从 json_encode 函数上来解决中文被 unicode 编码的问题,大家可以做个参考。
方法1:
此方法适用于php版本大于5.4情况下,如果php版本低于5.4可参考方法2
设置 json_encode 第二个参数为 JSON_UNESCAPED_UNICODE,则 json_encode 输入带的中文的数据时,中文不会被编码
例:
//feiniaomy.com 飞鸟慕鱼博客
$arr = array(code => success,msg => 这里是一个提示的内容);
echo json_encode($arr);
//输出的JSON: {"code":"success","msg":"\u8fd9\u91cc\u662f\u4e00\u4e2a\u63d0\u793a\u7684\u5185\u5bb9"}
echo json_encode($arr,JSON_UNESCAPED_UNICODE); // 将第二个参数设置为:JSON_UNESCAPED_UNICODE
//输出的JSON:{"code":"success","msg":"这里是一个提示的内容"}复制
方法2:
低于 5.4 版本的php中,json_encode 函数的第二个参数不起作用,则需要自己定义函数来实现不转义汉字的方法。
例:
$arr = array(Name => 墨初,Host => http
://feiniaomy.com);
//需要判断一个php的版本
if(version_compare(PHP_VERSION,5.4.0,<)) {
foreach($arr as $key => $value){
$jsonstr[$key] = urlencode($value);
}
echo urldecode(json_encode($jsonstr));
}else{
echo json_encode($arr);
}复制
本文链接:http://blog.sauo.top/?id=279 感谢分享!