vscode解决终端输出乱码的问题

问题:vscode中,基于CMakeTools编译c++的代码过程中,会出现菱形乱码,如下图所示:

1.将vscode中的默认终端改为PowerShell

ctrl+shift+P打开设置,在搜索中输入 terminal.integrated.default profile.windows ,将windows上的默认终端配置文件,修改为PowerShell,如下图所示:

2.将PowerShell的编码修改为UTF-8

PowerShell的编码默认为GBK,打开PowerShell的终端,输入 [Console]::OutputEncoding

如果 CodePage 显示 936:说明当前是 GBK 编码

如果 CodePage 显示 65001:说明当前是 UTF-8 编码

将该编码临时修改为UTF8,在PowerShell中输入,

cpp 复制代码
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

检查配置文件是否存在:

cpp 复制代码
Test-Path $PROFILE

返回 True:文件存在;返回 False:文件不存在

若不存在,则创建配置文件

cpp 复制代码
New-Item -Path $PROFILE -Type File -Force

用记事本或者notepad++打开该文件,输入内容:

cpp 复制代码
# 设置输出编码为 UTF-8
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
# 设置输入编码为 UTF-8 
[Console]::InputEncoding = [System.Text.Encoding]::UTF8

然后在vscode的下方的终端,输入[Console]::OutputEncoding,进行测试:

3.vscode中关于encoding的两个地方的设置:

files.encoding 我设置为UTF-8

Cmake.Output Log Encoding 我设置为gbk

我看网上的设置,都是将Cmake OutputLogEncoding设置为utf8,但是我这样改了之后,编译过程中的警告全部是菱形乱码,反而将Cmake OutputLogEncoding设置为gbk,cmake输出的log是正常的。

下图是正常编译过程中的中文log:

相关推荐
陶瓷好烦4 小时前
智能编码助手:VSCode+Keil+Kilo Code打造自然语言编程环境
vscode·stm32·单片机
DeadPool loves Star7 小时前
新版VSCode登录Old Linux
linux·ide·vscode
小松要进步7 小时前
VSCode
ide·vscode·编辑器
终端鹿7 小时前
VSCode插件Console Ninja详解:把DevTools搬进编辑器,调试效率翻倍
ide·vscode·编辑器
【ql君】qlexcel19 小时前
Visual Studio Code的使用,VS code常用扩展
ide·vscode·编辑器·visual studio·扩展
望眼欲穿的程序猿20 小时前
Vscode Clangd 无法索引 C++17 或者以上标准
java·c++·vscode
卓小帅的博客1 天前
解决vscode中无法使用特定语言注释的问题
ide·vscode·编辑器·快捷键·无法注释
hello_fengfeng1 天前
VSCode Remote-SSH 连接失败修复(权限问题)
ide·vscode·ssh
赖念安1 天前
在 vscode 的 NPM SCRIPTS 面板点击执行后脚本失败
ide·vscode·npm