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

从S3读取CSV文件遇编码错误,使用latin-1是否可行?

CSV解析编码错误问题及解决方案

问题详情

  • 从S3存储桶获取CSV文件,采用分块迭代方式处理时遭遇编码错误
  • 已尝试utf-8、unicode escape编码配置,均无法解决,目前试用latin-1编码,需确认该方案是否可行
  • 具体报错信息:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x99 in position 43: invalid start byte

  • 当前代码片段:
csv_iterator = pd.read_csv(obj['Body'], iterator=True, chunksize=10000, low_memory=False,
                           encoding="latin-1")

方案确认

你的思路完全正确,用latin-1编码是解决这类解码错误的有效方案,原因如下:

  • 0x99字节在UTF-8编码规则里属于无效起始字节,但在latin-1(即ISO-8859-1)编码中,每一个字节都会被直接映射为对应的Unicode字符,不会因为解码失败抛出异常,能保证文件顺利完成分块读取
  • 这种方案的优势是兼容性极强,不会因为个别异常编码字节中断处理流程;唯一的小问题是如果原文件包含非latin-1体系的特殊字符,可能会显示为乱码,但至少能先完成解析,后续可针对乱码字符进一步排查原文件的真实编码(比如Windows-1252,0x99在该编码中对应™符号)
  • 如果后续需要精准还原字符,可以尝试将encoding设为'cp1252'(Windows-1252),它和latin-1高度兼容,能正确解析更多Windows环境下生成的特殊字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:23:02