干货分享(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 感谢分享!