PHP json_encode 中文不转码,低版本处理

5.4 以上版本可以使用 JSON_UNESCAPED_UNICODE  来解决,但是低版本的,需要用其他方式

需要注意的是,encode_json参数为数组,不能为对象

function encode_json($str) {  
    return urldecode(json_encode(url_encode($str)));      
}  
    
function url_encode($str) {  
    if(is_array($str)) {  
        foreach($str as $key=>$value) {  
            $str[urlencode($key)] = url_encode($value);  
        }  
    } else {  
        $str = urlencode($str);  
    }  
      
    return $str;  
} 

网上有些使用 preg_replace,然后再转换编码解决,但是有些中文和数组的字符串,会出现数字丢失的问题,上面的方法是没有问题的

原文地址:https://www.cnblogs.com/yyf573462811/p/7248769.html