PHP实现过滤掉非汉字字符只保留中文字符


<?php

$str = "a 1b 2b<中文> 。xxyy字符";

//转换 GB2312 -> 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; //输出 中文字符

?>