DeTechn Blog

PHP json_encode() 函数详解及中文乱码问题

# 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);

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »