CLion 编译时消息框输出乱码解决

572 阅读1分钟

CLion 编译时消息框输出乱码解决

背景

最近,突然发现使用CLion,在构建编译时,消息输出框居然是乱码的。

F:\xxx\src\utils/util.h(1): warning C4819: ���ļ����������ڵ�ǰ����ҳ(936)�б�ʾ���ַ����뽫���ļ�����Ϊ Unicode ��ʽ�Է�ֹ���ݶ�ʧ
F:\xxx\src\main.cpp(31): error C2065: ��Solution��: δ�����ı�ʶ��
F:\Code\CppProjects\leet-code\src\main.cpp(31): error C2146: �﷨����: ȱ�١�;��(�ڱ�ʶ����s����ǰ��)
F:\xxx\src\main.cpp(31): error C2065: ��s��: δ�����ı�ʶ��
F:\xxx\src\main.cpp(32): error C2065: ��s��: δ�����ı�ʶ��
F:\xxx\src\main.cpp(33): error C3536: ��re��: ��ʼ��֮ǰ�޷�ʹ��

这跟控制台输出乱码有些相似。

解决方案

CLion - 设置 - 编辑器 - 常规 - 控制台:

image.png

发现默认编码为UTF-8,改为GB2312后,再编译:

F:\xxx\src\utils/util.h(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
F:\xxx\src\main.cpp(31): error C2065: “Solution”: 未声明的标识符
F:\xxx\src\main.cpp(31): error C2146: 语法错误: 缺少“;”(在标识符“s”的前面)
F:\xxx\src\main.cpp(31): error C2065: “s”: 未声明的标识符
F:\xxx\src\main.cpp(32): error C2065: “s”: 未声明的标识符
F:\xxx\src\main.cpp(33): error C3536: “re”: 初始化之前无法使用

现在构建编译输出的信息正常了。

www.jetbrains.com//help/clion…