VS Code中CodeRunner扩展输出UTF-8内容显示问号如何解决?
VSCode CodeRunner PowerShell输出乱码通用解决方案
核心问题排查
你当前的settings.json存在语法错误:[code-runner.executorMap]外层加了方括号,被识别为语言特定配置项,导致你写的PowerShell执行器规则完全未生效,这是之前配置不生效的首要原因。
全Windows版本通用解决方案(兼容Windows Server 2016、CMD命令调用)
直接替换你的settings.json为以下配置即可:
{ "workbench.colorTheme": "Tomorrow Night Blue", "terminal.integrated.defaultProfile.windows": "PowerShell" , "[powershell]": { "files.encoding": "utf8bom" }, // 修正原配置的方括号语法错误,正确配置执行器映射 "code-runner.executorMap": { // 执行前先切换控制台为UTF8代码页,再加载编码规则后运行脚本,兼容CMD类外部命令输出 "powershell": "chcp 65001 >nul & pwsh -ExecutionPolicy ByPass -Command \"[Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8;$PSDefaultParameterValues['*:Encoding'] = 'utf8';& '%f'\"", // 如果使用的是Windows PowerShell 5.x版本,将上方的pwsh替换为powershell即可 // 批量脚本执行也同步配置UTF8编码 "bat": "chcp 65001 >nul & cmd /c" }, // 强制CodeRunner在集成终端运行,继承终端编码配置 "code-runner.runInTerminal": true, "terminal.integrated.encoding": "utf8" }
该方案无需修改系统全局设置,在执行代码前先将控制台代码页切换为UTF-8,同时预加载PowerShell编码规则,不管是PowerShell原生命令还是dsquery这类调用CMD的外部命令,输出都不会出现问号乱码,适配所有Windows版本。
PowerShell持久化配置方案(可选)
如果希望所有PowerShell会话默认使用UTF-8编码,无需每次运行脚本时单独加载配置,可以按以下操作设置:
- 打开PowerShell,执行命令
notepad $PROFILE打开用户配置文件,若提示文件不存在则选择新建 - 将以下配置写入文件后保存:
[Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8 $PSDefaultParameterValues['*:Encoding'] = 'utf8' $PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
- 重启VSCode后所有PowerShell会话都会默认加载该编码配置,进一步简化执行逻辑。
Win10 1809+系统级方案(仅适配高版本Windows)
如果你使用的是Win10 1809及以上版本/Win11,可以通过系统全局设置解决:进入「设置→时间和语言→语言→管理语言设置→更改系统区域设置」,勾选「Beta版:使用Unicode UTF-8提供全球语言支持」,重启系统后全局默认编码为UTF-8,无需单独配置VSCode。该方案不适用于Windows Server 2016。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

