json_encode:
在php5.2中做json_encode的时候,中文会被unicode编码;php5.3加入了options参数;php5.4以后加入JSON_UN
ESCAPED_UNICODE,这个参数不需要做escape和unicode处理。所以
php5.4及以上中可以直接 json_encode($str,JSON_UNESCAPED_UNICODE);
php5.4以下
(1)、function encode_json($str)
{
$code = json_encode($str);
return preg_replace("#\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\1'))", $code);
}
注: 据说在实际应用中有个问题,部分字符会掉,如:"日期11.2"会被变成"日期.2"
(2)、先对需要处理的做urlencode处理,然后json_encode,最后urldecode处理
function encode_json($str)
{
if(is_array($str))
{
foreach($str as $key=>$value)
{
$str[urlencode($key)]=urlencode($value);
}
}
else
{
$str=urlencode($str);
}
return $str;
}
------------------------------------------------------------------------------------------------------