UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 590: illegal multibyte sequence
时间: 2025-06-06 10:49:29 浏览: 13
### 解决 Python 中 GBK 编码解码错误的方法
当遇到 `UnicodeDecodeError` 错误提示 `'gbk' codec can't decode byte...` 时,这通常意味着程序尝试使用GBK编码来解析含有不兼容字符的数据流。此问题常见于处理包含特殊字符或不同编码标准混合使用的文本文件。
一种有效的解决方案是在打开文件时指定正确的编码方式。如果不确定源文件的确切编码,则可以先假设其为 UTF-8 并测试是否能正常读取[^3]:
```python
def load_data(filename):
D = []
with open(filename, 'r', encoding='utf-8') as f:
for i, l in enumerate(f):
l = json.loads(l)
text, label = l['sentence'], l['label']
D.append((text, labels.index(label)))
return D
```
对于确实是以其他编码保存的文件(比如GB18030),则应相应调整参数设置以匹配实际编码格式。例如,在不知道确切编码的情况下,可尝试更广泛的 GB18030 或者 ISO-8859-1 来绕过潜在的非法字节序列问题[^4]:
```python
with open(filename, 'r', encoding='gb18030') as f: ...
# or
with open(filename, 'r', encoding='ISO-8859-1') as f: ...
```
另外,还可以通过捕获异常并忽略无法识别的字符来进行初步数据清洗;这种方法虽然会丢失部分信息但是能够保证程序继续执行而不中断:
```python
try:
with open(filename, 'r', errors='ignore') as f:
content = f.read()
except Exception as e:
print(e)
```
最后值得注意的是,有时即使指定了正确编码仍然会出现此类错误,这时可能是因为文件本身存在损坏或是包含了不符合任何已知编码规则的内容片段。此时建议检查原始文件是否有误,并考虑重新获取干净版本的数据集[^2]。
阅读全文
相关推荐


















