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

Python导出CSV遇特殊字符报错:UnicodeEncodeError问题解决

问题:Python抓取数据导出CSV时,遇外文/特殊字符崩溃

报错信息:

UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f6f5' in position 91: character maps to "undefined"

当数据包含俄文字母、#、*或Emoji等特殊字符时触发错误,原导出代码如下:

# save it to csv
with open('links.csv', 'w', newline='') as csv_out:
     csv_writer = csv.writer(csv_out)
# Create the header rows
csv_writer.writerow(['url', 'title','price','location'])
for row in data:
    csv_writer.writerow([str(row['link']),str(row['title']),str(row['price']),
    str(row['location'])])

修复方法

核心问题是Windows系统下默认文件编码为charmap,无法支持全量Unicode字符,只需在打开文件时指定UTF-8编码即可解决:

  • 在open()函数中添加encoding='utf-8'参数,确保文件以UTF-8格式写入,兼容所有外文、特殊字符和Emoji
  • 可选添加errors='replace'参数,遇到极端无法编码的字符时用占位符替代,避免程序中断

修改后的代码:

# save it to csv
with open('links.csv', 'w', newline='', encoding='utf-8', errors='replace') as csv_out:
     csv_writer = csv.writer(csv_out)
# Create the header rows
csv_writer.writerow(['url', 'title','price','location'])
for row in data:
    csv_writer.writerow([str(row['link']), str(row['title']), str(row['price']), str(row['location'])])

补充说明:UTF-8是通用的Unicode编码格式,几乎支持所有语言字符和特殊符号。如果导出的CSV用Excel打开时外文显示乱码,可以把encoding='utf-8'改成encoding='utf-8-sig',Excel会自动识别编码格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:22:52