php json_encode 中文不编码

2012-04-12 20:34  2035人阅读  评论 (0)
Tags: phpjson

因为要用php写一些其他语言调用的接口,使用的json格式交换数据,打印出日之后还需要在chrome console转换一下,不方便,就写了这个函数,分享.

function json_encode_cn($data){
    return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'json_encode_cn_cb', json_encode($data));
}

function json_encode_cn_cb($m){
    return iconv('UCS-2BE', 'utf-8', pack('H4', $m[1]));
}

$data = array('shenme'=>'我是中文,快显示我');
echo json_encode_cn($data), '<br>';

发现可一个更简洁的办法,更新啊一下. 2012-07-02 19:55

function json_encode_cn($data){
    return preg_replace("/\\\\u([0-9a-f]{4})/ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", json_encode($data));
}