Heim >Backend-Entwicklung >PHP-Tutorial >为什么[u4e00-u9fa5]不能匹配中文

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

WBOY
WBOYOriginal
2016-06-23 14:04:412573Durchsuche

用php的preg_match()函数匹配中文的时候,
匹配规则这么写,

$rule ='/[\u4e00-\u9fa5]/';

编译出错,说不知道\u,
该怎么办?
php怎么匹配utf-8编码的中文和gb2312编码的中文??


回复讨论(解决方案)

/[\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

你的php文件不是utf-8编码

哦,
确实是啊,
我用过的是notepad++
设置格式为utf-8,
结果匹配到的是乱码,
接了个header('Content-type:text/html;charset=utf-8');
就好了,
编辑器搞得是毛啊

谁让你要所谓“国际化”呢?
中国第一!gbk 无所不能

谁让你要所谓“国际化”呢?
中国第一!gbk 无所不能
版主批评的是

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn