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

修改Excel保存的CSV文件后pd.read_csv报错与俄文字符乱码问题求助

俄文CSV乱码及读取报错问题解决方案

核心问题根源

你遇到的两个问题均为Windows版Excel保存CSV的默认配置不兼容标准格式导致:

  • 分隔符解析报错:俄语/东欧区域的Windows系统默认CSV分隔符为分号;,你手动选择逗号保存时,包含特殊字符的字段会被Excel自动拆分/加引号,导致字段数不匹配报错
  • 俄文乱码&UTF-8解码报错:Excel默认保存CSV采用系统ANSI编码(俄语区对应cp1251西里尔编码,非UTF-8),直接用UTF-8解码自然会抛出字节不匹配错误

可用解决方案

方案1:直接读取现有文件无需重存

通过指定正确的编码和分隔符即可直接读取,无需修改源文件:

  1. 直接指定编码读取:
import pandas as pd
# cp1251为俄语区Windows默认ANSI编码,适配西里尔字符
df = pd.read_csv('修改后的文件路径.csv', sep=';', encoding='cp1251')
  1. 不确定编码时可先检测编码再读取:
# 先安装编码检测工具:pip install chardet
import chardet
with open('修改后的文件路径.csv', 'rb') as f:
    detect_result = chardet.detect(f.read())
# 输出检测到的编码,直接填入pd.read_csv的encoding参数即可
print(detect_result['encoding'])

读取完成后可导出为标准UTF-8格式方便后续使用:

df.to_csv('标准UTF-8编码数据集.csv', encoding='utf-8', sep=',', index=False)

方案2:Excel导出时配置正确格式从根源避免问题

后续使用Excel修改CSV时,不要用默认CSV保存选项,按以下步骤操作:

  1. 点击「文件」→「另存为」,保存类型选择CSV UTF-8 (逗号分隔) (*.csv)
  2. 不要选择默认的「CSV (逗号分隔) (*.csv)」选项,该选项保存的是ANSI编码
  3. 导出后直接用默认参数即可正常读取:
df = pd.read_csv('正确导出的文件路径.csv')

避坑提示

  • 非必要不建议用Excel修改包含西里尔、中文等非西欧字符的CSV文件,Excel的CSV编码、分隔符逻辑与跨平台标准不兼容,容易出现各类问题,可改用VS Code、Notepad++等文本编辑器修改,保存时可手动指定编码为UTF-8
  • 必须使用Excel时,保存环节一定要选择带UTF-8标识的CSV格式,不要使用默认CSV格式

内容的提问来源于stack exchange,提问作者hyper-cookie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:15:06