news 2026/4/26 22:59:06

Windows 下 使用VSCode 编写C++程序中文乱码问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows 下 使用VSCode 编写C++程序中文乱码问题

场景:Windows 下使用VSCode 编写C++程序,输出中文乱码

编译器:MinGW, 使用CMakeList.txt 脚本自动编译

解决方案:

在脚本中添加以下内容:

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)# 2. 在 project 之后,根据编译器 ID 进行判断# CMAKE_CXX_COMPILER_ID 的值通常是: MSVC, GNU, Clang, AppleClangif(MSVC)# --- 针对 Visual Studio (MSVC) ---# /utf-8 既设置源码集也设置执行集,完美支持中文add_compile_options(/utf-8)elseif(CMAKE_CXX_COMPILER_ID STREQUAL"GNU"OR CMAKE_CXX_COMPILER_ID STREQUAL"Clang")# --- 针对 MinGW / GCC / Clang ---add_compile_options(-finput-charset=UTF-8)add_compile_options(-fexec-charset=GBK)else()message(WARNING"Unknown compiler:${CMAKE_CXX_COMPILER_ID}")endif()

🔍 为什么这么做?

  • -finput-charset=UTF-8:告诉 GCC:“我的.cpp文件是用 UTF-8 保存的,请按 UTF-8 读取里面的中文。”
  • -fexec-charset=GBK:告诉 GCC:“编译出来的.exe文件里,字符串常量请转换成 GBK 编码。”
    • 原因:Windows 的中文控制台(cmd / PowerShell)默认使用 GBK (CP936) 编码。如果 exe 里存的是 UTF-8,控制台就会显示乱码。

修改保存后,点击 VS Code 上方的“构建”或重新运行 CMake.

总结:
Windows 下 GCC/MinGW + 中文代码 + CMake 导致的编码冲突,核心原因:
代码里写了中文字符串(创建成功)
GCC 编译器默认用 GBK 编码,源码是 UTF-8
字节不匹配 → 直接报非法字节序列

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 20:36:52

2026年蒸汽式香薰机值得买吗?有哪些推荐?

在追求生活品质与身心疗愈的今天,香薰机已成为许多家庭的标配。然而,面对市场上琳琅满目的超声波、冷香仪等产品,你是否也感到困惑:香气失真、清洁麻烦、安全隐患……这些问题频频出现。近年来,一种采用蒸汽原理的香薰…

作者头像 李华
网站建设 2026/4/16 20:35:15

如何免费获取百度网盘真实下载地址:baidu-wangpan-parse终极解析指南

如何免费获取百度网盘真实下载地址:baidu-wangpan-parse终极解析指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘令人抓狂的下载速度而烦恼吗&a…

作者头像 李华
网站建设 2026/4/16 20:33:48

数据孤岛吞噬制造企业利润,iPaaS平台选型指南全面发布

【本报讯】据中国信息通信研究院2025年最新调研数据,目前89%的制造企业存在严重的“数据孤岛”问题,企业平均部署8.3个独立系统,但数据互通率不足30%。面对这一困局,iPaaS集成平台正成为制造业数字化转型的关键基础设施。本文将从…

作者头像 李华
网站建设 2026/4/16 20:32:16

保姆级教程:用OptiCalib搞定三镜头相机标定(附棋盘/圆点标定板实战)

三镜头相机标定实战:从零掌握OptiCalib全流程与精度优化 在计算机视觉和三维测量领域,多镜头相机系统的标定质量直接决定了后续应用的精度上限。不同于单相机标定,三镜头系统的协同标定需要考虑镜头间的相对位置关系、不同分辨率的兼容性以及…

作者头像 李华
网站建设 2026/4/19 2:41:49

7864352

867453

作者头像 李华