Visual Studio 2022中输出韩文到控制台的头文件及编码问题求助
解决Windows 11 VS2022 C++/WinRT控制台韩文输出问号及C4566警告问题
核心原因
- 源码默认采用UTF-8编码,但Windows控制台默认使用CP1252或GBK编码,二者不匹配导致字符无法正确解析
cout默认绑定当前控制台代码页,无法直接输出Unicode字符
解决步骤
1. 消除C4566编译警告
在VS2022项目中调整编码配置:
- 右键项目 → 属性 → 配置属性 → C/C++ → 命令行,在「附加选项」中添加
/utf-8,强制源码和执行字符集统一为UTF-8 - 或在「常规」属性页中,将「字符集」设置为「使用Unicode字符集」,推荐前者以UTF-8统一编码
2. 调整控制台输出编码(无需额外第三方头文件)
修改代码,通过系统API切换控制台编码,并指定UTF-8字符串输出:
#include <iostream> #include <Windows.h> // 用于调用控制台编码设置API int main() { using namespace std; // 将控制台输出代码页设置为UTF-8 SetConsoleOutputCP(CP_UTF8); // 用u8前缀明确指定字符串为UTF-8编码 cout << u8"나의 첫 번째 C++프로그램" << endl; return 0; }
3. 手动确认控制台编码
若仍显示异常,手动切换控制台编码:
- 打开控制台窗口,右键标题栏 → 属性 → 选项,确认代码页为UTF-8(65001);若不是,在命令行输入
chcp 65001切换后再运行程序
内容的提问来源于stack exchange,提问作者Snowflake
相关产品推荐
相关产品推荐

