大家好,在php里如果判断一个字符串里含有繁体字呢??有什么办法大家说说哈,谢了先~~~~~

解决方案 »

  1.   

    顶一下,utf编码,简体和繁体有交叉,所有不好用正则表达式...
      

  2.   

    简化字共有 2288 个,全部收录在国标字库(GB2312)中
    其内码为:
    第一字节 0xb1 ~ 0xfe
    第二字节 0xa1 ~ 0xfe完全可以用正则表达式判断
      

  3.   

    感谢楼上的回答.我写过一个方法当文件保存为gb2312状态时,可以实现判断,但是当我想把文件保存为UTF8,然后再将其转换为gb2312情况下,再判断,这个时候就不太准确了,估计是将utf8转换为gb2312的时候有些问题....function isGB2312($str) {
    $strlen = strlen($str);
    for ($i = 0; $i < $strlen; $i ++) {
    if (ord(substr($str, $i, 1)) > 0xa0) {
    $char = substr($str, $i, 2);
    $temp = isGB2312ByChar($char);
    $i ++;
    if (!$temp)
    return false;
    }
    }
    return true;
    } function isGB2312ByChar($code) {
    if (strlen($code) == 2 || strlen($code) == 1) {
    $code1 = substr($code, 0, 1);
    $code2 = substr($code, 1, 1);
    // echo '$code1 = ' . ord($code1) . '<br />';
    // echo '$code2 = ' . ord($code2) . '<br />';
    if (ord($code1) >= 176 && ord($code1) <= 247
    && ord($code2) >= 160 && ord($code2) <= 254)
    return 1;
    return 0;
    } else {
    return 0;
    }
    }

    $string = "呵呵";
    $flag = isGB2312(mb_convert_encoding($string, "UTF-8", "GB2312")); 
    文件保存为utf8哈...