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