目录[-]
一、解码与编码
计算机编码有很多种,英文的一般用ascii,而中文有unicode,utf-8,gbk,gb2312,utf-16等等。 其中unicode是 utf-8,gbk,utf-16的父编码,它的子编码都能通过解码方法转换成unicode,再通过编码方法转化成其它子编码。例如utf8可以转成unicode再转gbk,但不能直接从utf8转gbk。
python中有两个方法用来解码(decode)与编码(encode),解码是子编码转unicode,编码就是unicode转子编码。
二、chardet模块
chardet 是python的第三方库,需要下载和安装。
#使用pip可以直接安装 pip install chardet #引用 import chardet
三、使用方法
chardet的使用非常简单,主模块里面只有一个函数detect。
无论是读取的txt文件内容、抓取的网页代码、数库查询的结果,都可以使用detect函数,返回一个字典。其中:encoding表示编码类型,confidence表示这种编码的概率。
使用Pycharm编辑器,代码示例如下:

定义text_type,在text_type变量下一行打上断点,点击右上角
像虫子一样的按钮,进行调试。
在弹出的变量窗口中,可以查看text_type内容。本例是读取的txt文本,其编码类型为“UTF-8-SIG”。
实际应用中可以直接引用字典的encoding属性,直接进行decode解码转为unicode类型,然后可以任意转换为其它类型。
#使用encoding属性解码 line.decode(text_type["encoding"])
