DEV-C++中为何无法显示中文

[Error] converting to execution character set: Illegal byte sequence
DEV-C++中为何无法显示中文

上午好☀️☀️☀️️
本答案参考通义千问
在 DEV-C++ 中无法显示中文并出现以下错误:
[Error] converting to execution character set: Illegal byte sequence
这是一个常见的编码问题,主要原因是 DEV-C++ 的默认字符集与源代码中的中文字符不匹配。下面我将详细解释原因,并提供解决方案。
重点:确保源代码文件的编码格式是 GBK(或 ANSI)而不是 UTF-8。
.cpp 文件。注意:不要使用 UTF-8 编码!
// 告诉编译器源文件使用 UTF-8 编码
#pragma execution_character_set("utf-8")
注意:此方法不一定适用于所有版本的 DEV-C++,建议配合第一种方法使用。
重点:设置项目使用正确的字符集。
如果你的程序中有 cout << "中文";,可能还需要设置控制台编码为 GBK。
#include <windows.h>
#include <iostream>
int main() {
// 设置控制台输出为 GBK 编码
SetConsoleOutputCP(936); // 936 是 GBK 的代码页
std::cout << "中文输出" << std::endl;
return 0;
}
#include <iostream>
#include <windows.h>
// 告诉编译器源文件使用 UTF-8 编码(可选)
#pragma execution_character_set("utf-8")
int main() {
// 设置控制台输出为 GBK 编码
SetConsoleOutputCP(936);
std::cout << "你好,世界!" << std::endl;
return 0;
}
| 问题 | 可能原因 | 解决方案 |
|------|----------|----------|
| 无法显示中文 | 源文件编码为 UTF-8 | 保存为 GBK 编码 |
| 报错 Illegal byte sequence | 编码不匹配 | 设置编译器字符集为 GBK |
| 控制台乱码 | 控制台输出编码不匹配 | 使用 SetConsoleOutputCP(936) |
| 重点内容 | 说明 |
|----------|------|
| 编码格式 | 必须使用 GBK 而不是 UTF-8 |
| 编译器设置 | 在项目属性中设置 Code Page 为 GBK |
| 控制台输出 | 使用 SetConsoleOutputCP(936) 设置输出编码 |
如有更多关于 DEV-C++ 的问题,欢迎继续提问!