判断是不是汉字

PHP代码
  1. $str = '汉字';  
  2. if ((ord($str) & 0x80) == 128)  
  3.     echo '是汉字';  
  4. else  
  5.     echo '不是汉字';  

0x80表示16进制数80,转换为十进制为128,转换为二进制为:10000000
ord($str)得到字符的ASCII值,然后与0x80进行&(位与)运算
按照汉字的高位为1的说法,所有高位不为1的字符和二进制10000000进行&运算后的结果都为0,即不为中文字符,相反,只要高位为1的字符,ord($str)&0x28的结果都是128(10000000)


版权声明:本文为yefengnidie原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。