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

如何正确将CSV文件的Windows-1251编码转换为UTF-8编码

正确转换编码的操作方案

方案一:直接修正读写环节的编码配置(优先推荐)

问题根源是初始读取源文件时编码配置错误,导致读入内存的内容本身就是乱码,后续无论用什么格式保存都会保留乱码。按以下代码修改读写逻辑即可:

  1. 读取原始RUvideos.csv时指定源文件编码为Win-1251(Python中编码名称为cp1251):
import pandas as pd
from os.path import join

data = pd.read_csv('RUvideos.csv', encoding="cp1251")
  1. 导出title列时明确指定UTF-8编码,可添加utf_8_sig兼容Excel打开不会乱码,同时关闭索引输出避免多余列:
x = data.title.copy()
x.to_csv(join(fld, 'title.csv'), encoding='utf_8_sig', index=False)

方案二:针对已生成的乱码文件直接转码

如果不想重新读取原始文件,可直接对现有乱码文件做字节层面的编码转换:

# 读取乱码文件的原始字节流
with open(join(fld, 'title.csv'), 'rb') as f:
    raw_data = f.read()

# 按Win-1251解码后重新编码为UTF-8保存
fixed_data = raw_data.decode('cp1251').encode('utf-8')
with open(join(fld, 'title_fixed.csv'), 'wb') as f:
    f.write(fixed_data)

注意事项

  • 不要使用Excel另存为修改编码,Excel会默认修改分隔符、添加额外格式,极易导致后续pandas读取时出现列拆分错误
  • Notepad++单纯切换显示编码不生效的原因是当前文件属于双重编码错误:Win-1251编码的字符被错误以UTF-8格式存储,仅切换显示编码无法修复,必须做字节层面的转码操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:06:04