$length = strlen($text);
echo $length."<br>";
for ($i=0; $i<$length; $i++)
{
    if (ord(substr($text, $i))>0xE0) {
        echo $i."utf-8";
        break;
    } elseif (ord(substr($text, $i))>0xA1) {
        echo $i."gb2312";
        break;
    } elseif (ord(substr($text, $i))>0x80) {
        echo $i."big5";
        break;
    }
}判断UTF-8没有问题就是BIG5,GB2312分不出来