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

Windows10下Mingw64中Python脚本无法打印UTF-8字符问题

解决MSYS2 Mingw64终端中Python打印Unicode字符的编码错误问题

问题场景

  • 已在MSYS2的mingw64环境中配置好Python3
  • 运行打印韩文的Python脚本时,触发UnicodeEncodeError错误,提示'charmap' codec can't encode characters
  • 直接使用.encode('utf-8')会输出字节串(如b'\xea\xb0\x80\xec\x9a\x94\xeb\x8c\x80\xec\xa0\x9c\xec\xa0\x84'),无法显示正常文字

解决方法

方法1:临时设置终端编码环境变量

在mingw64终端中先执行以下命令,指定Python的IO编码为UTF-8:

export PYTHONIOENCODING=utf-8

随后运行脚本即可正常输出:

python3 test.py

方法2:永久配置环境变量

若希望每次打开终端自动生效,可修改bash配置文件:

  1. 打开配置文件:
nano ~/.bashrc
  1. 在文件末尾添加:
export PYTHONIOENCODING=utf-8
  1. 保存退出后,使配置立即生效:
source ~/.bashrc

方法3:在Python代码中指定输出编码

无需修改终端环境,直接在脚本中重新配置标准输出流的编码:

#!/usr/bin/env python3
import sys
# 重新配置标准输出为UTF-8编码
sys.stdout.reconfigure(encoding='utf-8')
print("가요대제전")

原因说明

mingw64终端默认使用cp1252编码,该编码不支持韩文等非西欧Unicode字符。Python默认会使用终端的编码来输出字符,因此触发编码错误。通过设置PYTHONIOENCODING或重新配置stdout编码,让Python以UTF-8输出,即可适配终端的UTF-8显示能力,正常输出韩文。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:41:21