Windows下CLion中文乱码问题解决

Posted 卡尔曼和玻尔兹曼谁曼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下CLion中文乱码问题解决相关的知识,希望对你有一定的参考价值。

目录

原因分析

Windows内部采用UTF-16编码,对于中文操作系统使用GBK编码,但是CLion默认文本编码为UTF-8,当编码不一致时,就会造成输出乱码,甚至编译不通过。

解决方案

当然,对于新版的Windows 11我们可以手动在设置中将操作系统的编码调整为UTF-8,这样文件源码以及控制台终端编码都统一为UTF-8肯定就没问题了,但是这样会导致其他一些软件乱码。

所以,我们还是尽量在软件层面统一编码,尽量不要默认修改操作系统的编码。
打开CLion集成开发环境,在设置界面设置各种编码均为UTF-8。

然后,双击Shift,在弹出的搜索栏中,输入“Registry”,点击“Registry…”进入软件注册表界面,去掉“run.processes.with.pty”中默认的对勾,即不要选中该项。这样控制台程序的输出对中文的解析就是政策的了。


测试

接下来,我们试一下控制台输出是否采用的是UTF-8编码?简单代码如下:

#include <fmt/format.h>
#include <string_view>

int main() 

    constexpr std::string_view msg = "你好";
    fmt::print("\\n", msg.length());
    fmt::print(msg);
    return 0;


可以看到:“你好”两个汉字的长度是6,即一个汉字占三个字节。
UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。而GBK编码是定长的编码,一个汉字占两个字节。
所以,取消选中“run.processes.with.pty”以后,控制台输出采用的是UTF-8编码。至于为什么去掉该选项会输出编码,原因不得而知!😅

以上是关于Windows下CLion中文乱码问题解决的主要内容,如果未能解决你的问题,请参考以下文章

Windows下CLion中文乱码问题解决

Windows下CLion中文乱码问题解决

Clion中文乱码的解决

开发工具 skills解决 CLion 在 Run 或 Debug 时的中文乱码问题

CLion 在 Run 或 Debug 时中文乱码的解决方案

Clion项目控制台输出为乱码 使用Cygwin