当前位置: 首页 > article >正文

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

文章目录

    • @[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,编译器可以据此正确地解析文件中的字符。
环境版本
IDEvscode
系统windows11
构建工具cmake
编译器msvc2022-64

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

甯搁噺涓�鏈夋崲琛岀�� [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

在这里插入图片描述

  • 然后就可以正常编译并且输出中文了;

在这里插入图片描述




http://www.kler.cn/a/455325.html

相关文章:

  • 测序文章数据上传找哪里
  • 【AIGC篇】AIGC 引擎:点燃创作自动化的未来之火
  • 【WRF模拟】如何得到更佳的WRF模拟效果?
  • 电子电气架构 --- 什么是自动驾驶技术中的域控制单元(DCU)?
  • C++、Python有哪些相同和不同
  • 书签管理工具的使用技巧
  • 使用ffmpeg时,出现缺少libmvec.so.1共享库的问题
  • vscode-QT环境配置
  • uniapp中Nvue白屏问题 ReferenceError: require is not defined
  • TOTP双因素认证(2FA)php简单实现
  • 利用 Python 编写一个 VIP 音乐下载脚本
  • 软体机器人研究报告:设计方法、材料与驱动、感知与控制
  • 【MuJoCo和PhysX】
  • GFPS扩展技术原理(十)-FMDN Notification
  • MFC案例:图片文件转图标(ico)格式
  • pathlib:面向对象的文件系统路径
  • 计算机网络:应用层 —— 网络应用模式
  • FPC在蓝牙耳机中有哪些应用?【新立电子】
  • 麒麟操作系统服务架构保姆级教程(六)部署PHP环境
  • 图片拼接|横向拼接|竖向拼接|正方形拼接|其他模式拼接 python
  • Docker【初识Docker】
  • 如何找出OSS的引用所有的头文件
  • 【Springboot知识】Springboot进阶-实现CAS完整流程
  • 计算机网络 (10)网络层
  • LinkedList类 (链表)
  • 线性代数行列式