windows下vscode使用msvc编译器出现中文乱码

### 文章目录

  • [@[toc]](#文章目录 @[toc] 1、概述 2、修改已创建文件编码 3、修改vscode默认编码)
  • [1、概述](#文章目录 @[toc] 1、概述 2、修改已创建文件编码 3、修改vscode默认编码)
  • [2、修改已创建文件编码](#文章目录 @[toc] 1、概述 2、修改已创建文件编码 3、修改vscode默认编码)
  • [3、修改vscode默认编码](#文章目录 @[toc] 1、概述 2、修改已创建文件编码 3、修改vscode默认编码)
更多精彩内容
👉内容导航 👈
👉C++ 👈
👉开发工具 👈

1、概述

  • 在使用MSVC编译器时,出现中文报错的问题可能与编码格式有关。
  • UTF-8是一种变长的Unicode编码方式,它可以用来表示世界上几乎所有的字符。然而,UTF-8编码有两种常见的形式:UTF-8和UTF-8 with BOM(Byte Order Mark)。
  • UTF-8 without BOM是最常见的UTF-8编码形式,它不包含BOM。BOM是一个特殊的字符序列(EF BB BF),用于标识文件的字节序。
  • 在UTF-8中,字节序是固定的,因此BOM在UTF-8中并不是必需的。然而,一些编辑器和工具可能会在文件开头添加BOM,以帮助识别文件的编码格式。
  • MSVC编译器默认使用系统的本地编码(如Windows-1252)来处理源文件。如果源文件使用UTF-8 without BOM编码,而编译器期望的是本地编码,那么编译器可能会错误地解释文件中的字符,导致中文报错。
  • 当使用UTF-8 with BOM编码时,BOM可以帮助编译器正确识别文件的编码格式,从而避免中文报错。这是因为BOM在文件开头明确标识了文件的编码为UTF-8,编译器可以据此正确地解析文件中的字符。
环境 版本
IDE vscode
系统 windows11
构建工具 cmake
编译器 msvc2022-64

问题: 使用msvc编译c++程序时出现如果代码中有中文,则会出现警告、输出乱码或者中文导致的编译失败,如下所示;

shell 复制代码
甯搁噺涓�鏈夋崲琛岀�� [E:\Code\C++\test\build\test1.vcxproj]
璇�娉曢敊璇�: 缂哄皯鈥�;鈥�(鍦ㄢ€渳鈥濈殑鍓嶉潰) [E:\Code\C++\test\build\test1.vcxproj]
璇ユ枃浠跺寘鍚�涓嶈兘鍦ㄥ綋鍓嶄唬鐮侀〉(936)涓�琛ㄧず鐨勫瓧绗︺€傝�峰皢璇ユ枃浠朵繚瀛樹负 Unicode 鏍煎紡浠ラ槻姝㈡暟鎹�涓㈠け [E:\Code\C++\test\build\test1.vcxproj]

2、修改已创建文件编码

对于已经存在的文件,需要选择使用utf-8 bom编码重新保存文件;

  • 在vscode窗口右下角,选择UTF-8
  • 然后在弹窗中选择通过编码保存
  • 选择使用UTF-8 with BOM编码,然后就可以重新编译了;

3、修改vscode默认编码

vscode默认使用的是utf-8编码,需要修改为utf-8 bom编码。

如果一个文件一个文件该会非常麻烦,修改vscode默认编码后,新创建文件可以使用utf-8 bom编码。

  • 选择【文件】【首选项】【设置】;
  • 选择【文本编辑器】【文件】,将【Encoding】项改为使用UTF-8 with BOM
  • 然后就可以正常编译并且输出中文了;


相关推荐
cpsvps_net3 小时前
美国服务器环境下Windows容器工作负载智能弹性伸缩
windows
甄超锋4 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
cpsvps6 小时前
美国服务器环境下Windows容器工作负载基于指标的自动扩缩
windows
骑着毛驴数星星7 小时前
CANDB++中的CAN_DBC快速编辑方法,使用文本编辑器(如notepad++和VScode)
vscode·can
网硕互联的小客服9 小时前
Apache 如何支持SHTML(SSI)的配置方法
运维·服务器·网络·windows·php
etcix9 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
许泽宇的技术分享10 小时前
Windows MCP.Net:基于.NET的Windows桌面自动化MCP服务器深度解析
windows·自动化·.net
非凡ghost11 小时前
AMS PhotoMaster:全方位提升你的照片编辑体验
windows·学习·信息可视化·软件需求
mortimer12 小时前
一次与“顽固”外部程序的艰难交锋:subprocess 调用exe踩坑实录
windows·python·ai编程
gameatp14 小时前
从 Windows 到 Linux 服务器的全自动部署教程(免密登录 + 压缩 + 上传 + 启动)
linux·服务器·windows