Windows下CLion中文乱码最有效的解决方式

作者开发环境
Windows 10
Clion 18.3
MinGW-W64
很多人都遇到了Clion的中文乱码问题,然后在优快云上面寻找解决办法
比如这篇很有代表性https://blog.youkuaiyun.com/Cbk_XLL/article/details/78752534
这些方法都有弊端,就是还要把编辑页面的编码格式从UTF-8换成GBK编码
并且实际上严格来说这个方法是错误的,它是错错得正
文本是GBK然后编译器把它当成UTF-8然后又当成UTF-8输出在GBK的控制台
为啥要这么换呢?因为点击绿箭头运行过后输出结果是显示在RUN里面的
而这个RUN是根据系统默认编码(GBK)来显示中文的,所以要想正式显示中文
编辑的文本必须是GBK格式,可是按照上面的方式修改编码格式过后
每次打开CLion要想正确使用中文都要切换文本编码为GBK
于是我想到直接把系统编码改成万国码UTF-8
这样就不用这里GBK这里UTF-8的烦恼了
也就是说不用把当前文本编码改成GBK了
具体怎么换呢?请参考一下这篇文章
https://jingyan.baidu.com/article/25648fc1471e6a9191fd002e.html
这样在自己的电脑里面天下都是UTF-8了就不会有很多的烦恼了
但是我们难免要用到别人的东西
如果别人的东西是GBK编码导致我们这里乱码我们可以重新以GBK打开
但是上面的方法还有一个缺点,有的应用的中文文本就是以GBK编码的
所以更换系统编码格式还是有弊端的
那么有没有几乎没有弊端的方法呢?
有。在代码中加上头文件windows.h并且在程序开始时调用系统函数
system(“chcp 65001 > nul”);<

### CLion 中文乱码解决方案 CLion中的中文乱码问题通常是由于编码不一致引起的。以下是详细的解决方法: #### 方法一:调整文件和控制台编码设置 可以通过以下步骤来调整CLion的编码设置,从而解决中文乱码问题。 1. **进入文件编码设置** 点击 `File` -> `Settings` -> `Editor` -> `File Encodings`[^1]。 2. **修改全局编码和项目编码** 将 `Global Encoding` 和 `Project Encoding` 设置为 `UTF-8` 或者 `GBK`,具体取决于项目的实际需求。如果希望兼容更多字符集,则推荐使用 `UTF-8` 编码[^1]。 3. **更改控制台编码** 在CLion底部的状态栏找到当前编码格式,默认可能是 `UTF-8`。将其更改为 `GBK` 并选择 “Convert” 进行转换[^1]。 完成上述配置后重新运行代码即可正常显示中文内容。 #### 方法二:通过注册表禁用 PTY 功能 另一种有效的方法是通过CLion内置的注册表功能关闭 `run.processes.with.pty` 选项,这能够改善某些情况下控制台输出中文时出现的乱码现象。 1. **打开注册表界面** 使用快捷键两次按下 `Shift` 键,在弹出的搜索框中输入 `Registry`,随后点击 `Registry...` 菜单项[^2]。 2. **取消勾选特定选项** 在注册表窗口内定位到名为 `run.processes.with.pty` 的条目,并移除其前面的选择标记(即取消勾选)。此操作会使CLion不再依赖伪终端处理进程通信,有助于避免因编码差异引发的问题[^2]。 经过以上两种方式之一的操作之后再次执行测试程序应该不会再遇到类似的乱码困扰了。 ```cpp #include <fmt/format.h> #include <string_view> int main() { constexpr std::string_view msg = "你好"; fmt::print("{}\n", msg.length()); fmt::print(msg); return 0; } ``` 上面给出了一段简单的C++代码用于验证终效果是否符合预期——打印字符串长度以及原样输出消息本身。按照标准UTF-8编码规则,“你好”的总字节数应报告为6而非其他数值。 问题
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值