You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas读取CSV报UTF-8解码错误,如何对CSV做UTF-8编码处理?

问题原因

你收到的UnicodeDecodeError报错,本质是你读取的CSV文件本身并不是UTF-8编码,使用encoding='utf-8'参数无法正确解码文件中的特殊字节。

解决步骤

1. 测试兼容编码读取文件

根据文件来源替换read_csv的encoding参数,常见可选项如下:

  • 如果文件是在Windows简体中文系统生成的,优先尝试gbk编码:
    data = pd.read_csv('Downloads/samplefile.csv', low_memory=False, encoding='gbk')
    
  • 如果包含繁体中文,尝试big5编码;包含西欧/俄语等字符,尝试latin-1(即iso-8859-1)编码:
    data = pd.read_csv('Downloads/samplefile.csv', low_memory=False, encoding='latin-1')
    
    latin-1为单字节编码,不会抛出解码错误,但如果原文件为东亚语言编码,读取后会显示乱码,需重新匹配正确编码

2. 转存为UTF-8格式CSV

成功读取文件后,调用to_csv方法指定编码即可完成转码,示例代码:

# 标准UTF-8编码,适配大多数场景
data.to_csv('Downloads/samplefile_utf8.csv', encoding='utf-8', index=False)

# 若需要在Windows系统下用Excel正常打开中文内容,可使用带BOM的UTF-8编码
data.to_csv('Downloads/samplefile_utf8_sig.csv', encoding='utf-8-sig', index=False)

极端场景兼容方案

如果所有编码尝试后仍有报错或乱码,可设置解码时忽略错误字符(会丢失部分无法解码的内容,仅作为最后方案使用):

from io import StringIO

# 读取文件时跳过解码错误
with open('Downloads/samplefile.csv', 'rb') as f:
    content = f.read().decode('utf-8', errors='ignore')

data = pd.read_csv(StringIO(content), low_memory=False)

内容的提问来源于stack exchange,提问作者TeflonMusk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 09:30:02