讲师中心 微信公众号
AI工具推荐 视频效率加速

PyCharm中文乱码怎么彻底解决

胖萱小哥_1935

胖萱小哥_1935

发布时间:2026-08-25 08:15:25

|

1000人浏览过

|

来源于php中文网

原创

PyCharm中文乱码需分层处理:控制台乱码应配置终端编码与环境变量;编辑器文件乱码需按右下角编码重载并转存UTF-8;UI路径乱码需更换支持中文的字体;Matplotlib图表乱码需修改matplotlibrc及清理字体缓存。

pycharm中文乱码怎么彻底解决

PyCharm 中文乱码不是单一设置能“一键修复”的问题,它本质是多层编码不一致叠加的结果:文件保存用一种编码,控制台输出用另一种,JVM读取时又默认第三种,字体渲染再缺一环——漏掉任何一层,中文就可能变 æ–‡

真正起效的解法,得按实际现象分层处理,而不是统一设成 UTF-8GBK 就完事。

控制台 print() 输出中文是方块或问号

这是最常见也最容易误判的场景。根本原因是 Python ConsoleRun Configuration 启动的终端环境(Windows cmd/powershell 或 Linux bash)和 PyCharm 内部解释器之间编码错位。
  • Windows 下 cmd 默认代码页是 936(即 GBK),而 PyCharm 的 Python Console 默认用 UTF-8 解码输出,必然乱码
  • 直接改 Project EncodingGBK 只治标不治本,还会导致 Git 提交、协作时出问题

正确做法:

File → Settings → Tools → Python Console 中,勾选 Use IPython if available(IPython 对编码更鲁棒)

File → Settings → Tools → Terminal 中,把 Shell path 改为 cmd.exe /k chcp 65001 >nul(强制启动时切 UTF-8 模式)

对单个 Run 配置,在 Run → Edit Configurations → Environment variables 里加:PYTHONIOENCODING=utf-8

避免使用 -u 参数——它只影响 stdout/stderr 缓冲,不解决底层编码协商问题

编辑器里代码本身显示为乱码

这种情况通常发生在打开旧项目、从别人那里拷贝的 .py 文件,或者新建文件但未声明编码。
  • 不要盲目把 Global EncodingProject Encoding 都设成 GBK,尤其当团队用 Git 协作时,会引发 diff 异常、提交失败
  • 关键看单个文件右下角状态栏显示的当前编码(如 UTF-8GBKISO-8859-1),点它可重新以指定编码重载

实操建议:

新建 Python 文件时,第一行必须写:# -*- coding: utf-8 -*-(Python 3 可省略,但显式声明更稳妥)

已有乱码文件:右下角点击编码名 → Reload project encoding as... → 选疑似原始编码(比如旧 Windows 记事本存的选 GBK)→ 确认后立刻另存为 UTF-8

批量修复:用 File → File Encoding → Convert Encoding to UTF-8,但务必先备份——转换不可逆

PyCharm 2026.2
PyCharm 2026.2

PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。

下载

左侧 Project 树或菜单里中文路径/文件名显示为小方块

这跟文本内容编码完全无关,纯属字体渲染问题。PyCharm 默认字体(如 JetBrains Mono)不包含中文字符集。
  • 即使所有编码全设成 UTF-8,这里照样显示方块
  • 不需要改任何编码配置,只需换字体

操作路径:

File → Settings → Appearance → Fonts

取消勾选 Use custom font(如果已启用),或勾选后在 Font 下拉框里选一个带中文支持的字体,例如:Microsoft YaHeiNoto Sans CJK SCSimSun

注意:Linux/macOS 用户需确认系统已安装对应中文字体,否则下拉列表里不会出现

Matplotlib 图表中文标题/标签全是方块

这是独立于 PyCharm 编码设置的另一套体系,由 Matplotlib 自己的字体缓存和 rcParams 控制。
  • 改 PyCharm 的 File Encodings 对图表毫无影响
  • 即使代码里写了 plt.rcParams['font.sans-serif'] = ['SimHei'],若系统没装该字体或 Matplotlib 找不到,依然乱码

关键步骤:

先运行 import matplotlib; print(matplotlib.matplotlib_fname()) 查看配置文件路径

编辑该 matplotlibrc 文件,取消注释并修改:font.sans-serif: SimHei, DejaVu Sans, Bitstream Vera Sans, sans-serif

删掉用户级字体缓存目录(Windows:%USERPROFILE%\.matplotlib\fontlist-*.json;macOS/Linux:~/.matplotlib/fontlist-*.json),让 Matplotlib 重启扫描字体

代码中必须加:plt.rcParams['axes.unicode_minus'] = False,否则负号会显示为方块

真正麻烦的不是某一步怎么做,而是你得先判断:乱码出现在哪一层?是终端输出、编辑器文本、UI 界面,还是第三方库渲染?每层背后机制不同,混着调只会让问题更隐蔽。

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

1551

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

3664

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1569

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

20917

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2587

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2647

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

1063

2023.08.11

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

576

2023.08.10

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

0

2026.09.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn