php 判断中英文字符

编码表,双字节字符编码范围:

1. gbk (gb2312/gb18030)

x00-xff gbk双字节编码范围

x20-x7f ascii

xa1-xff 中文 gb2312

x80-xff 中文 gbk

2. utf-8 (unicode)

u4e00-u9fa5 (中文)

x3130-x318f (韩文

xac00-xd7a3 (韩文)

u0800-u4e00 (日文)

  1. <?
  2. $str = "中国";
  3. echo $str;
  4. echo "<hr>";
  5. //if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在gb2312情况下使用
  6. if (preg_match("/^[x7f-xff]+$/", $str)) { //兼容gb2312,utf-8
  7. echo "正确输入";
  8. } else {
  9. echo "错误输入";
  10. }
  11. ?>

中文判断问题,其实有很多学问,底层的内部编码,涉及utf-8,gbk,gb13800的各种不同。曾经研究过如何区分一个字符是什么字符的问题,关联细节太多。