python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object,chardetvalueerror,py3里,字符串,s


py3里,字符串,str类型,是unicode编码格式。其他类型都是byte,编码格式是gbk,utf-8等

而chardet是检查byte类型的编码格式的,不是检查str类型的编码格式的。

a="abc啊”,是字符串,就不能用chardet了。

当获取的数据(byte)类型,需要当成字符串来处理,需要先将其编码成unicode(python处理的都是此编码)。

而要将bytes转换成unicode,需要先知道bytes具体是什么编码格式如gbk,然后使用aa=decode("gbk"),aa为unicode的该数据内容。

如果很不幸,你有一堆bytes,不知道它们的编码(例如 网站服务器返回的响应体),
这时候,你就需要chardet来测试它们的编码。

python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object

评论关闭