QT中文乱码解决方法

博主之前用MinGW编译QT无中文乱码问题,公司要求QT+VS编程,使用MSVC编译器出现中文编译错误。对于常量中文字符,用QStringLiteral包裹;对于字符串变量,用QString::fromLocal8Bit包裹。该方法适用于QT5及以上版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人以前QT用的编译器是MinGW因此从来没有出现过中文乱码问题

现在公司要求QT+VS编程,因此需要使用MSVC编译器,MSVC编译器不识别中文,因此我把代码移过来的时候出现了编译错误。

    lay->addWidget(_buttons[0] = new QPushButton(QStringLiteral("人机对战")));
    lay->addWidget(_buttons[1] = new QPushButton(QStringLiteral("人人对战")));
    lay->addWidget(_buttons[2] = new QPushButton(QStringLiteral("网络对战(服务端)")));
    lay->addWidget(_buttons[3] = new QPushButton(QStringLiteral("网络对战(客户端)")));

将中文字符用QStringLiteral包裹住就完事了,特别的要注意QStringLiteral仅能处理常量。

对于字符串变量用QString::fromLocal8Bit包裹住字符就完事了嗷。

本人QT版本5.4.2,该方法适用QT5及以上版本(大概)。

顺便吐槽一下这种方式真的很繁琐。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值