if (x and $8080)=$8080 then
  大部分是汉字
if (x and 0xa0a0)=$a0a0 then
   基本上是汉字其实汉字字符集和ASCII 字集没有明显的界限   

解决方案 »

  1.   

    ASCII大于128的是非英文字母,在中文Windows里可以认为是汉字小班前来灌水
      

  2.   

    if ord(str[1])<127 then 
    不是汉字
    else 是汉字
      

  3.   

    if ord(str[i])>=176 and ord(str[2])>=161 then 
      是汉字
    其实第一个大于161也可以,但是不一定是汉字,而可能是句号,逗号等一些
    全角的字符。
      

  4.   

    GBK汉字的后一个字节在ASC范围内,所以,对串是否汉字
    要借助于函数:ByteType(串)
      

  5.   

    Delphi有对双字节字符串操作的函数组,叫做 Wide String Routines, 如BCB所说的
    ByteType()。用这个就对了。
      

  6.   

    if messagedlg("请问括号里是汉字吗("+ s +")",mtConfirmation,[mbyes,mbno],0)=mryes
      then //是汉字
      else //不是汉字