python里如何让判断输入的编码是什么??比如,如果输入中文则判断为GB2312

Python015

python里如何让判断输入的编码是什么??比如,如果输入中文则判断为GB2312,第1张

供参考。gb312本来就是标准ascii的一种扩充,ascii可以视同为gb312的子集。所以,如果var的值全部是在ascii里面的话,转成gb312后也还是属于ascii,所以使用detect函数的时候,编码还是ascii(当然同时也属于gb312);如果var的值不是全部在ascii里面的话,语句var

=

var.decode('ascii')可能会出错。

只要var的值是英文(内码0-127),转换不转换,都已经是gb2312编码。

其中, encoding 为检测出的编码, confidence 为可信度, language 是语言。

另外一个例子:

检测的编码是GB2312,注意到GBK是GB2312的超集,两者是同一种编码,检测正确的概率是74%,language字段指出的语言是'Chinese'。

注意:chardet支持检测的编码列表请参考官方文档 Supported encodings 。