Rumah > pembangunan bahagian belakang > tutorial php > 为什么[u4e00-u9fa5]不能匹配中文

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-23 14:04:41
asal
2662 orang telah melayarinya

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

$rule ='/[\u4e00-\u9fa5]/';
Salin selepas log masuk

编译出错,说不知道\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));
Salin selepas log masuk

输出结果是
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 无所不能
版主批评的是

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan