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

如何在Python中使用特殊字符并解决文件写入的UnicodeEncodeError报错

问题原因
  • 运行环境默认的文本文件编码为cp1252,该编码无法兼容\N{Circled White Star}(对应字符✪)这类特殊Unicode字符,写入时触发编码报错
  • 原代码中f.close未添加括号,仅引用了关闭方法并未实际执行,文件没有正常关闭,即使无编码错误内容也不会写入磁盘
解决方案

方案1(推荐):打开文件时显式指定utf-8编码

直接在调用open()函数时添加encoding='utf-8'参数,同时建议使用with上下文管理器自动处理文件关闭,无需手动调用close方法,避免漏写括号的问题:

# 最优写法:with上下文管理器自动管理文件生命周期
with open('test.txt', 'w', encoding='utf-8') as f:
    f.write("\N{Circled White Star}")

# 兼容原有写法的修改版
f = open('test.txt','w', encoding='utf-8')
f.write("\N{Circled White Star}")
f.close() # 注意补充括号执行关闭操作

修改后运行即可正常将✪字符写入test.txt文件。

方案2(不推荐):全局修改Python默认编码

可以设置系统环境变量PYTHONUTF8=1,让Python所有脚本默认使用utf-8编码打开文本文件,无需每次指定encoding参数。但该配置会全局影响所有Python程序的编码行为,可能引发其他兼容问题,优先选择方案1。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:54:03