Python 3模块docstring中块元素字符Windows显示异常如何解决
问题根因
该现象是因为Windows默认控制台(CMD/PowerShell)的默认编码不是UTF-8,Python的help输出会优先匹配控制台的编码,无法被对应编码覆盖的特殊字符就会被转为Unicode转义序列输出。
修复方案
- 方案1:Python代码层强制指定输出编码(Python3.7+适用)
在你的模块开头加入如下代码,仅在Windows平台下强制标准输出/错误流使用UTF-8编码,不影响Linux平台的原有运行逻辑:
import sys if sys.platform == 'win32': sys.stdout.reconfigure(encoding='utf-8') sys.stderr.reconfigure(encoding='utf-8')
方案2:临时修改当前控制台编码
在运行Python之前,先在当前控制台窗口执行命令切换为UTF-8编码:chcp 65001
执行完成后再启动Python交互环境,查看help就可以正常显示特殊字符。方案3:全局配置Python默认使用UTF-8编码
你可以通过系统环境变量配置,让所有Python进程默认启用UTF-8模式:- 新建系统环境变量
PYTHONUTF8,值设置为1 - 重启控制台/IDE生效
或者单次运行Python时添加启动参数即可:python -X utf8
- 新建系统环境变量
方案4:永久修改Windows全局默认编码(不推荐,可能导致部分老的GBK编码软件异常)
打开「控制面板→区域→管理→更改系统区域设置」,勾选「Beta版:使用Unicode UTF-8提供全球语言支持」,重启系统后所有控制台默认使用UTF-8编码。
注意:请确保你的Python源文件本身是以UTF-8编码保存,否则即使配置了输出编码也会出现乱码
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

