这个问题很奇怪,一开始直接匹配文字ok
preg=/中文/ 这样妥妥儿,后来别人把文件发过来才发现不行‘ 于是去网上找了找转unicode编码的匹配 大概就是preg=/\u1111/
这样
还是不行,因为php不支持\u,只支持\x
然后我千辛万苦把\u转成\x{1111}
还是不行没辙了,找到网上匹配全部中文的写法
$preg = /[\x{4e00}-\x{9fa5}]+
还是不行,连续几篇文章都是这个代码,没道理不行啊
开始怀疑是不是编码有问题
mb_detec,发现是utf8妥妥的,编码也没有问题啊,于是强转成utf8试试看
居然成了,mb检测果然还是有小问题的……
最后代码如下,加个强转就好了
$str = file_get_contents('xiaoshuo.sql');
$str= mb_convert_encoding($str,'UTF-8','GBK');
$preg = "/[\x{4e00}-\x{9fa5}]+/u";
preg_match_all($preg,$str,$brr);
print_r($brr);
网友评论