You need to enable JavaScript to run this app. 使用pandas读取CSV文件时该如何选择适配的编码类型?
优惠活动
大模型
产品
解决方案
定价
更多

使用pandas读取CSV文件时该如何选择适配的编码类型?

CSV编码类型的明确判定与选择方法

核心判定逻辑(告别无意义试错)

不需要上来就挨个换编码参数跑读取代码,先按文件生成来源匹配90%以上的场景:

  • 老版本Windows Excel(2019及更早版本)导出的CSV:哪怕内容全是英文、数值,优先选latin1。这类文件实际使用cp1252编码,夹杂的隐式控制字符不在utf-8的映射范围内,用utf-8读取会直接触发解码错误,这也是那份纯英数文件用pandas.read_csv("Data.csv",encoding='latin1')能成功读取的核心原因。
  • 脚本、在线工具、2021版之后的Excel、macOS/Linux系统下导出的CSV:优先选utf-8。
  • 带简体中文内容的CSV:国内老Windows系统、国产办公软件导出的文件优先选gbk;macOS下导出的带中文文件优先选utf-8-sig(解决普通utf-8读取时列名前出现乱码BOM头的问题);繁体中文场景的老系统文件选big5。

常见编码的适用边界与兜底规则

  • latin1:单字节全映射编码,对所有0-255的字节内容都能完成无报错解码,不会出现程序崩溃的情况,但读取多语言非西欧字符时会出现显示乱码。适合作为纯英数类文件的兜底读取选项,完全适配无多语言内容的CSV场景。
  • utf-8:跨平台兼容度最高的多语言编码,支持所有常见文字内容的读取,是现代场景下的优先选择。
  • utf-8-sig:专门适配带BOM头的utf-8格式文件,避免普通utf-8读取时把BOM头当成普通字符读入列名的问题。
  • gbk/gb2312:仅适配国内老系统导出的简体中文内容CSV,不建议在纯英数场景下使用。

快速排查的实操技巧

  • 读文件时如果出现解码报错,不要随机换编码尝试,先看报错提示里指出的非法字节位置,再结合文件来源匹配对应编码即可。
  • 对于纯英文、纯数值的无多语言内容CSV,如果反复尝试utf-8都报错,直接用latin1读取即可,这类文件本身没有多语言显示需求,latin1读取不会出现内容偏差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.12 03:36:07