没有办法判断字符串的编码方式。
所能够做到的是:判断是不是iso8859-1编码,是不是UTF-8编码,是不是unicode/utf-16编码。
规则:
iso8859-1---每个byte都是0开头。
utf-8---0开头,or 10开头表示是双字节,以此类推。
unicode/utf-16---一个是FF EF开头,另一个是EF FF开头。
每种编码都有自己的域,可以判断每个字符是不是在域里面来确定文本是不是用了该编码。但是,这样误差很大,因为域的overlapping size太大。总而言之,没有人去判断文本是GBK还是Big5编码,因为做不到。类推后,判断是不是utf8才是唯一可行的,看看ultra edit所能够判断的编码方式就知道了。