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

Python如何导入含emoji的CSV文件并解决编码乱码及报错问题

解决带emoji的CSV文件读取乱码/报错问题

问题根因

UTF-8解码报错的核心原因是文件中存在少量不符合UTF-8编码规范的异常字节,Notepad++解码时自动忽略了错误字节,因此会显示文件为UTF-8编码;用ISO-8859-1读取时emoji乱码是因为该编码为单字节解析规则,无法正确识别多字节的emoji字符。

可行解决方法

方法1:编码容错读取(推荐,无需修改原文件)

pandas支持在读取时配置编码容错规则,跳过/替换非法字节的同时保留正常UTF-8编码的emoji内容,代码如下:

import pandas as pd
# 最新版pandas支持直接传encoding_errors参数
df = pd.read_csv(DATA, encoding='utf-8', encoding_errors='ignore')

如果使用的pandas版本较低不支持上述参数,可以用文件对象先做容错处理再读取:

import pandas as pd
with open(DATA, 'r', encoding='utf-8', errors='ignore') as f:
    df = pd.read_csv(f)

如果担心忽略异常字节丢失关键信息,可将errors参数值替换为'replace',非法字节会被统一替换为�标识,你可以后续单独处理这些标记内容

方法2:转存为标准UTF-8文件

如果容错读取仍有问题,可以手动把文件转为标准UTF-8编码:

  • 用Notepad++打开目标CSV文件
  • 点击顶部菜单栏「编码」→「转为UTF-8编码」(不要选择带BOM的选项)
  • 保存修改后直接用pd.read_csv(DATA, encoding='utf-8')读取即可

后续emoji转换操作

读取完成后直接调用emoji库的demojize方法处理对应文本列即可,示例代码:

import emoji
# 把参数中的content替换为你存储带emoji文本的列名
df['processed_text'] = df['content'].apply(emoji.demojize)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:39:04