目录[-]

一、解码与编码

计算机编码有很多种,英文的一般用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"])