
从底层逻辑证明,编写一个能准确识别不带BOM的文本文件编码是GBK还是UTF8是不可能的
但是如果汉字和英文混排的一段,就不然,英文GBK编码中,刻意兼容了ASICII编码集, 比如英文字符“Z”,其ASICII的16进制编码是5A,二进制是1011010 ,而GBK的编码的是00000000 1011010,而上述,是可以按照编码规则找的几个汉字,这样的组合还大量存在,自然而然,在没有BOM头的情况下,没有程序能准确识别GBK和ANSI编码的文本文件,因为这是不可能的,已经证明了。通过这些特殊字节,可以很容易的确定文本文件的编码方式,而不是靠猜的方式确定。






