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 - 设置 - 编辑器 - 常规 - 控制台:
发现默认编码为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”: 初始化之前无法使用
现在构建编译输出的信息正常了。