PyCharm控制台中文乱码需分层校准三环节:1. 通过sys.stdout.encoding确认Python进程实际编码;2. Run配置中添加-Dfile.encoding=GBK(Win)或UTF-8(macOS/Linux);3. File Encodings设置与文件真实编码一致,并同步配置终端及控制台字体。

PyCharm 控制台中文乱码不是编码设错一次就能解决的,它往往由多个环节的编码不一致叠加导致——文件读取、Python 解释器启动、终端模拟器渲染,三者缺一不可。最稳妥的做法是分层校准,而不是只改 Project Encoding。
控制台输出乱码:先确认 Python 进程实际用的编码
PyCharm 的 Python Console 或 Run 配置里,python 进程默认继承系统终端编码(Windows 是 GBK,Linux/macOS 通常是 UTF-8),但 PyCharm 自己的控制台模拟器却可能强制用另一套。直接看效果不如看真相:
- 在控制台运行
import sys; print(sys.stdout.encoding),结果不是utf-8就说明底层已偏移 - 若输出
cp936(Windows)或gbk,而你代码用的是 UTF-8 字符串,必然乱码 - 不要依赖
chcp 65001临时切换——它只对当前 CMD 会话有效,PyCharm 的 Python Console 不走这个路径
Run 配置中必须加 -Dfile.encoding=GBK(Windows)或 -Dfile.encoding=UTF-8(macOS/Linux)
PyCharm 启动 Python 进程时,JVM 层(哪怕你跑的是 CPython,PyCharm 仍通过 Java 层调度)会读取 -Dfile.encoding 来决定 open()、sys.getdefaultencoding() 等行为。漏掉这步,Project Encoding 设再对也白搭:
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- 右键运行配置 →
Edit Configurations… - 在
VM options栏填入:-Dfile.encoding=GBK(Windows)或-Dfile.encoding=UTF-8(其他系统) - 注意:不能写成
-Dfile.encoding="UTF-8",引号会导致 JVM 解析失败 - 如果同时用到 Java 工程或 Jython,此参数还会影响 classpath 中资源文件的加载
File Encodings 设置必须匹配实际文件保存编码
Global Encoding 和 Project Encoding 不是“越统一越好”,而是要和你真实保存的 .py 文件编码一致。很多人误把所有地方都设成 UTF-8,结果复制粘贴了 GBK 编码的中文注释进来,PyCharm 读错字节就直接显示 :
- 打开一个已有中文的 .py 文件,看右下角状态栏显示的编码(如
GBK) - 对应去
Settings → Editor → File Encodings把Project Encoding设为相同值 -
Default encoding for properties files可保持UTF-8(.properties 文件规范要求) - 勾选
Transparent native-to-ascii conversion对 GBK 项目有害,关掉
字体设置影响的是显示,不是编码
即使所有编码全对,控制台仍显示方块或空格,大概率是字体不支持中文 glyph。这不是乱码,是渲染失败:
- 进
Settings → Editor → Font,选SimSun(Windows)、Microsoft YaHei或Noto Sans CJK SC(跨平台) - 别只改 Editor 字体——
Settings → Tools → Terminal → Font和Settings → Editor → Color Scheme → Console Font也要同步设 - macOS 上若用了
Menlo或Monaco,它们原生不包含中文字符集,必须换
真正麻烦的不是某一步没做,而是改完一处后忘了重启 Python Console 或重开 Run 配置——PyCharm 不会热更新这些底层参数。改完必须关掉所有已打开的控制台窗口,再重新运行。

















