Qt命令行中文乱码(Win10)解决办法

由于Qt Creator的默认编码为UTF-8,但Win10命令行默认编码为GBK,这时就会出现Qt命令行程序内的中文字符无法正常显示,只能看到一堆乱码:

在这里插入图片描述

我们有两种方法解决乱码问题:

修改Qt Creator文本编码

Qt Creator的文本编码的设置可以在三个地方修改,分别是全局设置(每次新建文件都按照这个编码设置)、自定义编码(工程自定义编码,只针对一个工程里的文件)和单个文件的编码修改。

假设当前命令行的编码格式为GBK(936)

1.修改全局编码设置

如果使用Qt Creator新建工程或文件,文件自动使用该设置里的编码格式,修改全局编码步骤:
在这里插入图片描述
注意:修改全局设置后,当前打开的文件并不会立刻生效,需要文件关闭后再打开才能生效。
一般修改格式后,文本原来的中文也会变成乱码(第三种修改方法,单文件编码修改可以避免这种情况),需要重新修改乱码字符。
在这里插入图片描述
修改完后,编译运行,不再出现乱码。
在这里插入图片描述

2.修改工程自定义编码格式

工程自定义编码设置的修改步骤,与全局设置相同,需要重开文件才能生效。
在这里插入图片描述

3.修改单个文件编码格式

这种修改方式的特点是生效快,不用重新打开文件,而且可以进行按编码保存,即修改编码格式而不修改文本显示效果。
在这里插入图片描述

“ ”

修改creator_process_stub.exe编码格式(命令行)

假如我们不想修改Qt Creator的编码格式,且坚持要使用默认的UTF-8编码格式,这时我们可以修改qt命令行的编码格式。

首先在出现乱码的命令行窗口的标题栏右键选中属性,然后选择使用旧版控制行选项,
在这里插入图片描述

关闭当前命令行,重新打开一个(重新运行Qt程序),设置默认值,如果有UTF-8,则选择,如果没有,进入下一步。
在这里插入图片描述

我的Win10控制台程序编码选择中没有UTF-8选项,所以需要通过修改注册表的方式实现UTF-8编码显示。
键盘输入Win+R,输入cmd打开控制台,在控制台中输入regedit,打开注册表,
打开目录HKEY_CURRENT_USER->Console->QtCreator_bbin_qtcreator_process_stub.exe,如果没有CodePage的数值项,则手动添加一个(DWORD数值),命名为CodePage,
在这里插入图片描述
将该数值的数据改为十进制的65001(UTF-8)
在这里插入图片描述
再次运行Qt命令行程序,此时Qt控制台已经可以显示UTF-8编码的字符了:
在这里插入图片描述

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小辉_Super

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值