PyCharm调试器监视Python2.7字典触发UnicodeEncodeError问题咨询
解决Python2.7下PyCharm调试器监视字典触发UnicodeEncodeError的问题
嘿,这个问题我之前在调试Python2.7代码的时候也踩过坑!本质是Python2.7默认的系统编码是ascii(从你打印的sys.getdefaultencoding()结果也能看出来),而PyCharm调试器在尝试显示包含非ASCII字符的Unicode对象时,会调用系统默认编码去转换,遇到中文这类字符就会触发UnicodeEncodeError。下面是几个靠谱的解决办法:
方法1:给Python2.7的调试配置添加环境变量
这是最推荐的方法,不用改代码,直接调整PyCharm的运行配置:
- 打开PyCharm的「Run/Debug Configurations」窗口(可以通过右上角的运行配置下拉菜单里的「Edit Configurations...」进入)
- 找到你用来调试Python2.7代码的配置项
- 在「Environment variables」区域,点击右侧的编辑按钮,添加两个环境变量:
PYTHONIOENCODING=utf-8LC_ALL=en_US.UTF-8(或者用zh_CN.UTF-8,根据你的系统语言选择)
- 保存配置后重新调试,应该就能正常显示字典里的中文,不会触发编码错误了。
方法2:在代码中临时修改默认编码(调试专用)
如果你不想动PyCharm配置,可以在代码开头添加一段hack代码强制修改默认编码:
# -*- coding: utf-8 -*- from __future__ import unicode_literals import sys reload(sys) # Python2.7启动时会移除这个方法,必须重新加载才能调用 sys.setdefaultencoding('utf-8') print(sys.getdefaultencoding()) d = {'中文': '中文'} print(d)
⚠️ 注意:这个方法不推荐在生产代码中使用,因为会干扰Python的默认编码逻辑,但在本地调试时临时用是没问题的。
方法3:升级PyCharm版本(长期解决方案)
你当前使用的是PyCharm 2018.1.2,这个版本比较老旧,后续的PyCharm版本对Python2.7的Unicode调试兼容性做了不少优化。如果条件允许,升级到2020.x及以后的版本,大概率能直接解决这个问题。
内容的提问来源于stack exchange,提问作者Cloud
相关产品推荐
相关产品推荐

