📅  最后修改于: 2023-12-03 14:48:10.818000             🧑  作者: Mango
这个错误出现在程序中遇到了不能解码的字节,通常是因为编码格式不匹配导致的。这个错误给程序员带来了很多麻烦,因为它可能是从各种地方引起的,比如文件、网络、数据库等等。
在程序中正确指定文件、网络、数据库等读取操作的编码格式,保证与原始数据的编码格式一致就可以。
with open('file.txt', 'r', encoding='utf-8') as f:
data = f.read()
import requests
response = requests.get(url)
response.encoding = 'utf-8'
data = response.text # 解码后的数据
SET NAMES utf8mb4;
在程序中进行编码格式转换,将原始数据转换成程序中指定的编码格式。
with open('file.txt', 'rb') as f:
data = f.read().decode('gb2312')
import requests
response = requests.get(url)
data = response.content.decode('gb2312') # 将数据从GBK编码格式转换成UTF-8编码格式
使用第三方库对数据进行编码格式转换,这种方法可以适用于多种编码格式之间的转换。
import chardet # 第三方库,用于检测数据的编码格式
with open('file.txt', 'rb') as f:
data = f.read()
encoding_info = chardet.detect(data)
data = data.decode(encoding_info['encoding'])
import codecs # Python内置库,用于编码格式转换
with codecs.open('filename', 'r', encoding='gb2312', errors='ignore') as f:
data = f.read()