<p>优先检查PYTHONIOENCODING环境变量,应在运行配置中添加PYTHONIOENCODING=UTF-8;同时确保Global Encoding、Project Encoding和Default encoding for properties files三处均设为UTF-8;每个Python文件首行需添加# coding=utf-8;Windows用户须关闭“Use legacy console”。</p>

PyCharm控制台输出中文乱码,优先检查 PYTHONIOENCODING 环境变量
PyCharm 控制台乱码最常见原因不是文件编码,而是 Python 解释器启动时 I/O 编码未对齐。Windows 下 cmd 默认用 GBK(代码页 936),而 PyCharm 内置终端默认尝试 UTF-8,但没强制生效。
直接在运行配置里加环境变量比改系统或全局设置更稳妥:
- 点击右上角运行配置下拉箭头 → Edit Configurations
- 选中当前 Python 配置 → 右侧展开 Environment variables
- 添加新变量:
PYTHONIOENCODING=UTF-8 - 保存后重启运行 —— 多数情况下立即生效
注意:PYTHONIOENCODING 只影响标准输入输出流编码,不影响文件读写,也不改变源码解析逻辑。
File Encodings 设置必须三处统一为 UTF-8
PyCharm 有三套独立的编码设置,缺一不可,且必须全部设为 UTF-8:
- Global Encoding(全局):影响新建文件默认编码
- Project Encoding(项目):影响当前项目所有未显式声明编码的文件
-
Default encoding for properties files:.properties 文件专用,也建议设为
UTF-8
路径:File → Settings → Editor → File Encodings。别只改 Project Encoding 而漏掉 Global —— 新建文件仍会用 GBK 导致后续乱码。
如果已有老文件是 GBK 编码,PyCharm 会提示“Reload as UTF-8”,点它;若提示“Convert”,说明内容已损坏,需手动用记事本另存为 UTF-8 再拖回。
Python 脚本开头加 # coding=utf-8 不是可选项
即使 PyCharm 全局设了 UTF-8,Python 解释器本身不读取 IDE 设置。Python 2 强制要求声明,Python 3 虽默认 UTF-8,但某些旧解释器或打包工具(如 PyInstaller)仍可能忽略默认值。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
务必在每个 .py 文件第一行或第二行(注释之后)加上:
# coding=utf-8
不要写成 # -*- coding: utf-8 -*- 或其他变体 —— PyCharm 和 CPython 都认 # coding=utf-8,最简最稳。
如果用了模板自动生成脚本头,确认模板里包含这行;否则新建文件后手动补上,养成条件反射。
Windows 用户必须关掉 “Use legacy console”
这是 Windows 10/11 上一个隐藏雷区:PyCharm 默认复用系统 legacy console,而它不支持 UTF-8 渲染,哪怕你设了 PYTHONIOENCODING 也白搭。
解决方法:
- 打开任意 cmd 窗口 → 右键标题栏 → Properties
- 取消勾选 Use legacy console (requires relaunch)
- 点 OK → 关闭所有 cmd 窗口 → 重启 PyCharm
这个开关一旦开启,PyCharm 的 Python Console、Terminal、甚至 Run with Python Console 都会跳过 UTF-8 渲染路径,直接 fallback 到 GBK 显示逻辑。
很多用户反复调编码却无效,卡在这里 —— 它不报错、不提示,只是静默降级。

















