为什么[\u4e00-\u9fa5]不能匹配中文

eightwhells 2013-03-29 03:15:55
用php的preg_match()函数匹配中文的时候,
匹配规则这么写,
$rule ='/[\u4e00-\u9fa5]/';

编译出错,说不知道\u,
该怎么办?
php怎么匹配utf-8编码的中文和gb2312编码的中文??
...全文
2867 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
eightwhells 2013-04-03
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning 的回复:
谁让你要所谓“国际化”呢? 中国第一!gbk 无所不能
版主批评的是
xuzuning 2013-04-03
  • 打赏
  • 举报
回复
谁让你要所谓“国际化”呢? 中国第一!gbk 无所不能
eightwhells 2013-04-03
  • 打赏
  • 举报
回复
哦, 确实是啊, 我用过的是notepad++ 设置格式为utf-8, 结果匹配到的是乱码, 接了个header('Content-type:text/html;charset=utf-8'); 就好了, 编辑器搞得是毛啊
一起混吧 2013-04-03
  • 打赏
  • 举报
回复
你的php文件不是utf-8编码
ImN1 2013-04-03
  • 打赏
  • 举报
回复
你的php文件自身是gbk编码 或者charset没有设为utf-8
eightwhells 2013-04-03
  • 打赏
  • 举报
回复
测试了一下, 匹配出来时乱码。
	
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 为什么呢?
黄袍披身 2013-03-29
  • 打赏
  • 举报
回复
gbk 和 utf-8是不一样的...utf-8很轻松的就可以匹配了...
ImN1 2013-03-29
  • 打赏
  • 举报
回复
/[\x{4e00}-\x{9fa5}]/u 字符串需要unicode

21,894

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧