龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php json_encode 编码,对中文友好

时间:2014-07-12 15:11来源:网络整理 作者:网络 点击:
分享到:
json_encode 编码,对中文友好 php版本的 json_encode 编码中文内容会使编码后的内容长度大增,使用这个函数对utf-8编码的信息进行json编码,不影响解码,不影响javascript 的使用.内容更清晰直观.

php版本的 json_encode 编码中文内容会使编码后的内容长度大增,使用这个函数对utf- 8编码的信息进行json编码,不影响解码,不影响javascript 的使用.内容更清晰直观. 另外,在这,申请管理给帖子加精.

function jsonx_encode($array) {
    static $replace=array();
    if(!$replace) {
        for($i=0; $i < 0x20; $i++) {
            //$t = $find[$i];
            $t = chr($i);
            $replace[$t] = sprintf("\\\\u%04x",$i);
        }
        $replace["\\\\"]="\\\\\\\\";
        $replace["\\""]="\\\\\\"";
        $replace["\\t"]="\\\\t";
        $replace["\\r"]="\\\\r";
        $replace["\\n"]="\\\\n";
        $replace["\\x0C"]="\\\\f";
        $replace["\\x08"]="\\\\b";
    }

    $str = '';
    if(is_array($array) || is_object($array)) {
        $array = (array) $array;
        $is_o = array_keys($array) !== range(0, count($array) - 1);
        $str .= ($is_o ? "{" : '[');
        $is_start=0;
        foreach($array as $k => $v) {
            $str .= ($is_start ? "," : '');
            $is_start =1;
            if($is_o){
                $str .= '"';
                $str .= strtr($k, $replace);
                $str .= '":';
            }
            $t = __FUNCTION__;
            $str .= $t($v);
        }
        $str .= ($is_o ? "}" : ']');
    }
    elseif(is_string($array)) {
        $str .= '"';
        $str .= strtr($array, $replace);
        $str .= '"';
    }
    elseif(is_numeric($array)) {
        $str .= $array;
    }
    else{
        $str .= 'null';
    }
    return $str;
}
//该片段来自于http://outofmemory.cn
收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接