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:

相关推荐
HeeRiver16 小时前
VSCode调用deepseek-v4-pro/flash api的方法
ide·vscode·api·deepseek-v4
H Journey1 天前
Windows + VSCode + CMake 编译
windows·vscode·cmake
三品吉他手会点灯1 天前
STM32 VSCode 开发-与STM32CubeMX协同开发环境搭建
vscode·stm32·单片机·嵌入式硬件
克拉拉KLARA1 天前
vscode禁用在git提交中插入ai coauthor copilot
git·vscode·copilot
三品吉他手会点灯1 天前
STM32 VSCode 开发-C语言程序运行后,终端中文乱码
c语言·ide·笔记·vscode·stm32·学习·编辑器
代码缝合怪1 天前
解决新版 VSCode 无法 ssh 连接 WSL Ubuntu18.04的问题
ide·vscode·ssh·ubuntu18
H Journey1 天前
CMakeLists.txt 基本用法实战
cmake·cmakelists
三品吉他手会点灯1 天前
STM32 VSCode 开发-与Keil MDK协同开发环境搭建
笔记·vscode·stm32·单片机·嵌入式硬件
念一不念二1 天前
vscode中添加claude code插件
ide·vscode·编辑器
HealthScience1 天前
vscode推荐使用的插件
ide·vscode·编辑器