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

Python读写CSV文件时遭遇UnicodeEncodeError编码错误

解决CSV写入时的UnicodeEncodeError问题

你的报错是因为输出文件没有指定UTF-8编码,Windows系统下默认用cp1252编码,而这个编码无法处理像č这类特殊Unicode字符。

修改后的代码

with open(output_file, 'w', encoding='utf-8', newline='') as f_output, open(input_file, encoding='utf-8-sig') as f_input:
    reader = csv.DictReader(f_input, delimiter='\t')
    fieldnames = reader.fieldnames

    writer = csv.DictWriter(f_output, fieldnames=fieldnames)
    writer.writeheader()

    for row in reader:
        print(row)
        writer.writerow(row)

关键修改点

  • 打开输出文件时添加encoding='utf-8':强制使用UTF-8编码写入,确保所有特殊字符都能正确保存
  • 加上newline='':这是Python csv模块的官方推荐写法,能避免不同操作系统下的换行符混乱问题

错误原因说明

你读取文件时指定了utf-8-sig编码,能正确解析带BOM的UTF-8文件,但写入时没指定编码,系统自动用了Windows默认的cp1252编码,而该编码不包含\u010d(对应字符č)这类扩展Unicode字符,所以触发了UnicodeEncodeError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:54:59