for i=1 to len(str)
char=(mid(str,i,1))
tmp=65536+asc(char)
if tmp>=45217 and tmp<=62289 then
  msgbox "汉字"
end if
next

解决方案 »

  1.   

    取该字符的ASCII码值 
    如果在0x41~0x7a之间,为英文字符(包括标点符号) 如果是GB2312-80编码 
    编码范围是高位0xa1-0xfe,低位是 0xa1-0xfe 
    汉字范围为 0xb0a1 和 0xf7fe
      

  2.   

    <script language=vbscript>
    for i=1 to len(str)
      char=mid(str,i,1)
      tmp=65536+asc(char)
      if tmp>=45217 and tmp<=62289 then
        msgbox "汉字"
      end if
    next
    </script>
      

  3.   

    <?php
    $str = "1";
    if  (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) {
        echo "这是一个纯中文字符串";
    } else {
        echo "这不是一个纯中文字串";
    }
    ?>
      

  4.   

    function getstrsize($str,$len)
    {
    $m=0;
    for($i=0;$i<$len;$i++)
    {
    $j=ord(substr($str,$i,1));
    if(!($j<=122))
    $m++;
    }
    return $m;
    }
    function Str_sub($str,$lenth)
    {
    $tem=$str;
    if(strlen($str)>$lenth)
    {
    $i=ord(substr($str,$lenth-1,1));
    if($i<=122)
    $tem=substr($str,0,$lenth);
    else
    {
    if(getstrsize($str,$lenth)%2==0)
    $tem=substr($str,0,$lenth);
    else
        {
        $tem=substr($str,0,$lenth-1);
    }
    }
    $tem.="&iexcl;&shy;&iexcl;&shy;";}
    return $tem;
    }
      

  5.   

    按值判断
    //截取指定字符串长度(不会将汉字截开)!
    function fixlenstr($str,$len)
    {
    $str = (string)$str;
    $len = (int)$len;
    $strlen = strlen($str);
    if($len>$strlen) $len = $strlen;
    $i = 0;
    $fixlen = 0;
    while($i<$len)
    {
    $chr = $str[$i];
    $i++;
    if(ord($chr)<0x80) $fixlen++;
    elseif($i<$len)
    {
    $i++;
    $fixlen += 2;
    }
    } return $len>=$strlen ? substr($str,0,$fixlen) : substr($str,0,$fixlen)."...";
    }
      

  6.   

    ord($chr)<0x80核心就是这个啦
      

  7.   

    http://www.jdon.com/AOPdesign/jdon-aop.htm
    good
      

  8.   

    $string="汉";
    if (ord($string)>128){
          echo "汉字";
    }else{
          echo "EN";
    }
      

  9.   

    用ord来检查,大于128就是汉字