VS Code Python原生REPL窗口字符编码输出错误问题求助
VS Code中Python原生REPL输出UTF-8字符乱码的修复方案
问题现象
VS Code文件已设为UTF-8默认渲染,执行以下代码时:
print('带重音的字母: á, é, í, ó, ú, ü, ñ')
- 通过Shift+Enter调用Python原生REPL窗口,输出出现编码错误:
带重音的字母: á, é, Ã, ó, ú, ü, ñ - 但使用交互式窗口(Jupyter)或终端直接运行,输出显示正常。
原因分析
Python原生REPL在VS Code中启动时,未正确继承终端的UTF-8编码配置,导致输出阶段对UTF-8字符进行了错误转码。
解决方法
方法1:强制Python以UTF-8模式启动
修改VS Code的Python启动参数,让REPL强制使用UTF-8编码:
- 打开VS Code设置(快捷键
Ctrl+,或Cmd+,) - 搜索python.terminal.launchArgs
- 添加如下参数:
该参数会强制Python解释器全程以UTF-8模式运行,确保输出编码匹配。["-X", "utf8"]
方法2:配置终端默认编码(Windows专属)
如果是Windows系统,可直接将终端默认编码设为UTF-8:
- 打开VS Code终端,点击右上角下拉菜单,选择选择默认配置文件
- 选中常用的终端(PowerShell或命令提示符)
- 在settings.json中添加对应配置:
- PowerShell配置:
"terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "args": ["-NoExit", "/c", "chcp 65001"] } }, "terminal.integrated.defaultProfile.windows": "PowerShell" - 命令提示符配置:
"terminal.integrated.profiles.windows": { "Command Prompt": { "path": ["${env:windir}\\System32\\cmd.exe"], "args": ["/k", "chcp 65001"] } }, "terminal.integrated.defaultProfile.windows": "Command Prompt"
- PowerShell配置:
方法3:临时修改REPL编码(单次生效)
若不想修改全局设置,可在REPL中手动设置输出编码:
import sys sys.stdout.reconfigure(encoding='utf-8')
执行后再运行print语句即可正常显示,但每次重启REPL都需要重新执行。
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

