UTF-8
$str = mb_convert_encoding($str, 'UTF-8', 'GB2312');
preg_match_all('/[x{4e00}-x{9fff}]+/u', $str, $matches);
$str = join('', $matches[0]);
//转换 UTF-8 -> GB2312
$str = mb_convert_encoding($str, 'GB2312', 'UTF-8');
echo $str; //输出 中文字符
?>

UTF-8
$str = mb_convert_encoding($str, 'UTF-8', 'GB2312');
preg_match_all('/[x{4e00}-x{9fff}]+/u', $str, $matches);
$str = join('', $matches[0]);
//转换 UTF-8 -> GB2312
$str = mb_convert_encoding($str, 'GB2312', 'UTF-8');
echo $str; //输出 中文字符
?>