超级疑问

来源:百度知道 编辑:UC知道 时间:2024/04/20 04:52:08
我使用这个来检验变量是否是纯中文
<?php
if (eregi("^[\u4E00-\uFA29]+$","d你d")){
echo "通过";
}
else{
echo "失败";
}
?>
失败了,我把[\u4E00-\uFA29]换成[\x80-\xFE]却可以,
但是我在http://zhidao.baidu.com/question/8504049.html问过
他说[\x80-\xFE]是:
\x80之类的\x后接两个数字,匹配表示二位十六进制代码为80的字符,\x80是€,\xFE是þ,所以[\x80-\xFE]表示从€到þ的这126个字符,这其中没有任何中文字。
为什么

\x是属于ANSI编码,各个国家的不同,其中我国的GB2312中是从AO(十六进制)开始到FE(十六进制),

在ANSI中大于80的为2个字节,也就是说小于80的为1个之节

http://www.cublog.cn/opera/showart.php?blogid=20562&id=126864中有个表,你去下载来看看便知道了。