【解决方案】chardet使用 自动识别检测文档文件编码方式 UnicodeDecodeError解决方案

在打开文件时,经常会遇到编码错误UnicodeDecodeError,确实有点棘手

UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 56: illegal multibyte sequence

有没有一种方式可以快速检测文件的编码方式
本文章介绍一种自动检测文件/网页编码的第三方工序chardet

chardet

引入

pip install chardet

使用

普通用法

读取文本

导入chartdet后,
使用chardet.detect检测二进制内容,
返回编码方式,及可信度

>>> import chardet
>>> with open("demo.txt", "rb") as f:
...     print(chardet.detect(f.read()))
...
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}
读取网页
>>> import chardet
>>> import urllib.request
>>> rawdata = urllib.request.urlopen('http://blog.csdn.net/').read()
>>> chardet.detect(rawdata)
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

高级用法

识别的文件内容很大时,普通方式就回存在效率,性能上的不足。chardet提供了高级用法
示例:

from chardet.universaldetector import UniversalDetector

detector = UniversalDetector()
with open("demo.txt", "rb") as f:
    for line in f.readlines():
        detector.feed(line)
        if detector.done: 
            break

detector.close()
print(detector.result)  # {'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

更多用法:链接

你可能感兴趣的:(解决方案,检测文件编码方式,检测文件编码,自动检测编码,chardet,chardet使用,UnicodeDecode)