为什么[\u4e00-\u9fa5]不能匹配中文 用php的preg_match()函数匹配中文的时候,匹配规则这么写,$rule ='/[\u4e00-\u9fa5]/';编译出错,说不知道\u,该怎么办?php怎么匹配utf-8编码的中文和gb2312编码的中文??正则表达式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /[\x{4e00}-\x{9fa5}]/u字符串需要unicode gbk 和 utf-8是不一样的...utf-8很轻松的就可以匹配了... 测试了一下,匹配出来时乱码。 function pregCh($test){ $rule ='/[\x{4e00}-\x{9fa5}]/u'; preg_match($rule,$test,$result); return $result; } $test ='asfasdhs中afhajs90中文8327849023'; var_dump(pregCh($test));输出结果是array(1) { [0]=> string(3) "涓�" } 页面编码是utf-8为什么呢? 你的php文件自身是gbk编码或者charset没有设为utf-8 哦,确实是啊,我用过的是notepad++设置格式为utf-8,结果匹配到的是乱码,接了个header('Content-type:text/html;charset=utf-8');就好了,编辑器搞得是毛啊 谁让你要所谓“国际化”呢?中国第一!gbk 无所不能 jQuery EasyUI的datagrid数据不能在页面显示 写了个简单的注册页面,可填完表单,点击提交,页面没有反应 如何获取浏览器的宽度 PHP+jquery+ajax imgage输出到文件,后面显示相关信息的问题 PHP的配置环境 程序中如何设置Mysql数据库整理字符? 面向对象的讨论! php模拟post取得jsp查询数据,使用的是curl,出现问题,求指教 高手请进,在register_globals off后,无法传递类变量 请教修改OpenVPN协议的思路 求一正则表达式, 谢谢
字符串需要unicode
匹配出来时乱码。
function pregCh($test){
$rule ='/[\x{4e00}-\x{9fa5}]/u';
preg_match($rule,$test,$result);
return $result;
}
$test ='asfasdhs中afhajs90中文8327849023';
var_dump(pregCh($test));
输出结果是
array(1) { [0]=> string(3) "涓�" }
页面编码是utf-8
为什么呢?
或者charset没有设为utf-8
确实是啊,
我用过的是notepad++
设置格式为utf-8,
结果匹配到的是乱码,
接了个header('Content-type:text/html;charset=utf-8');
就好了,
编辑器搞得是毛啊
中国第一!gbk 无所不能