# PHP json_encode() 函数详解及中文乱码问题
// 方法一:当PHP版本 < 5.4时
/**
* 对数组中的中文进行urlencode转码,然后再urldecode,
* 防止当PHP版本低于5.4时json_encode无法解析中文而返回null值的问题。兼容多级数组转码
* @param array &$array [description]
* @return [type] [description]
*/
function changeEncodingForArray(&$array = []) {
$result = [];
foreach ($array as $key=>$value) {
if (is_array($value)) {
$result[$key] = changeEncodingForArray($value);
} else {
$result[$key] = urlencode($value);
}
}
return $result;
}
// 调用示例:
echo urldecode(json_encode(changeEncodingForArray($data))); // data可以为多级且含有中文的数组
// 方法二:当PHP版本 > 5.4时
json_encode($array, JSON_UNESCAPED_UNICODE);