首页 > 开发 > Python > 正文

如何查看字符编码类型?python3.5使用chardet模块总是报错

2017-09-06 19:23:20  来源:网友分享

一直被编码问题所困惑,在网上搜索了“如何查看字符编码类型?”,听说chardet模块很方便,但是安装了chardet模块之后,使用一直报错“ValueError: Expected a bytes object, not a unicode object”,不知道什么原因。
如下图所示:

解决方案

你的 a 已经是字符了,就不需要再测试编码了。
chardet 是用来测试 bytes 的编码格式的。


py3里,只有 unicode编码格式字节串才能叫作str
其他编码格式的统统都叫bytes,如:gbkutf-8gb2312…………

这些bytes要转换为 unicode编码 才能当作str来用,就需要知道 bytes 的编码格式。
如果你事先知道,比如gbk,就可以用 bytes.decode('gbk')将bytes解码为unicode字符。
如果很不幸,你有一堆bytes,不知道它们的编码(例如 网站服务器返回的响应体),
这时候,你就需要chardet 来测试它们的编码。