# 这是学习廖雪峰老师python教程的学习笔记


对于未知编码的bytes,要把它转换成str,就需要知道该bytes的编码方式。我们可以用chardet这个第三方库来检测编码

    1)直接检测bytes

>>> chardet.detect(b'Hello, world!')

{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}

检测出的编码是ascii,confidence字段,表示检测的概率是1.0(即100%)

    2)检测GBK编码的中文

>>> data = '离离原上草,一岁一枯荣'.encode('gbk')

>>> chardet.detect(data)

{'encoding': 'GB2312', 'confidence': 0.7407407407407407, 'language': 'Chinese'}

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

 

s1是s2的超集

Python学习笔记__13.3章 chardet_Python

3、扩展文档

chardet支持检测的编码列表 (https://chardet.readthedocs.io/en/latest/supported-encodings.html)