解决php preg_match_all 正则匹配中文出现乱码的问题

今天在处理数据的时候,发现使用preg_match_all 匹配出的数据会有乱码的问题,这时候马上想到使用php的mb_xxx函数。
搜索手册,万能的php手册就是nb,直接把代码都给写好了,下在是替代preg_match_all函数的代码:
function?__mb_ereg_match_all($reg,?$text,$charset=’UTF-8′)
{
????$ret?=?[];
????mb_regex_encoding($charset);
????//?print_r($reg);exit;
????mb_ereg_search_init($text,?$reg);
????$r?=?mb_ereg_search();
????if?(!?$r)?{}?else?{
????????$r?=?mb_ereg_search_getregs();?//?get?first?result
????????do?{
????????????$ret[]?=?$r[1];
????????????$r?=?mb_ereg_search_regs();?//?get?next?result
????????}?while?($r);
????}
????return?$ret;
}