VSCode调试面板及控制台中文编码字符串无法正常显示如何解决?
我之前调试Python代码时也碰到过一模一样的情况,中文字符串在调试面板里全是\xe6\xb5\x8b\xe8\xaf\x95这种转义码,折腾了好一会儿才搞定,给你几个靠谱的解决方案:
调整VS Code调试控制台编码
打开VS Code的设置(快捷键Ctrl+, 或者Cmd+,),在搜索框里输入debug console encoding,找到Debug > Console: Encoding这个选项,把它设置为utf8。这个设置直接控制调试控制台的字符编码,很多时候就是这里没设对导致中文显示异常。修改Python调试配置文件(launch.json)
- 打开左侧调试面板,点击顶部的"创建launch.json文件",选择你的Python环境;
- 在生成的配置里,给对应的调试项添加
env参数,强制设置Python的IO编码为UTF-8,同时可以把控制台类型改成集成终端或者外部终端:{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "env": {"PYTHONIOENCODING": "utf-8"} } ] }
推荐把
console设为integratedTerminal或者externalTerminal,默认的internalConsole有时候对非ASCII字符的支持不太好。检查Python解释器的默认编码
可以在代码开头加一行测试代码,看看Python的默认编码是不是UTF-8:import sys print(sys.getdefaultencoding())如果输出不是
utf-8,可以尝试设置系统环境变量PYTHONIOENCODING=utf-8,或者在代码里临时调整(Python3一般不需要这步,默认就是UTF-8):import sys if sys.version_info[0] == 2: reload(sys) sys.setdefaultencoding('utf-8')更新VS Code和Python插件
旧版本的VS Code或者Python插件可能存在编码兼容bug,打开扩展面板找到Python插件,点击更新按钮,同时把VS Code也更到最新版,有时候更新完问题就自动消失了。
一般来说,前两个方法就能解决大部分情况,先试修改launch.json的配置,再调整调试控制台编码,应该就能看到中文正常显示了。
内容的提问来源于stack exchange,提问作者Gawain

