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

Windows下Python管道输出到文件时UnicodeEncodeError问题解决

解决Windows下Python管道输出Unicode字符的编码错误

为什么会报错?
Windows终端直接打印时,Python会适配终端支持的编码(通常是UTF-8或GBK),但用管道输出到文件时,系统默认会用老旧的ANSI编码(比如cp1252),这类编码不支持像📂这类emoji字符,所以触发UnicodeEncodeError。

下面是几种可行的解决办法:

方法1:设置PYTHONIOENCODING环境变量

直接告诉Python用UTF-8编码处理标准输出,这是最简单的方案:

# 先设置环境变量,再执行命令
set PYTHONIOENCODING=utf-8
python -c "print('📂')" > log.txt

或者合并成一行执行:

PYTHONIOENCODING=utf-8 python -c "print('📂')" > log.txt

方法2:直接写入UTF-8编码的字节流

绕过系统默认编码,手动把字符转成UTF-8字节后写入标准输出:

python -c "import sys; sys.stdout.buffer.write('📂'.encode('utf-8') + b'\n')" > log.txt

这里加b'\n'是因为print默认会自动加换行,直接写字节流需要手动补充。

方法3:在代码中重定向标准输出编码

如果是写Python脚本而非单行命令,可以在脚本里重新指定标准输出的编码:

import sys
import codecs

# 重新设置标准输出为UTF-8编码
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach())
print('📂')

然后执行脚本并输出到文件:

python script.py > log.txt

内容的提问来源于stack exchange,提问作者Michael B. Currie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 09:11:01