inno setup 中文乱码问题_QT的跨平台开发问题(5)彻底解决中文乱码

本文介绍了在QT开发过程中遇到的Windows平台中文乱码问题,详细解析了乱码产生的原因涉及的编码环节,并提供了两种解决方案:1. 通过转换文件编码和调整QT代码设置;2. 使用Qt Linguist进行语言包处理。
摘要由CSDN通过智能技术生成

1. 现象

(1)QString是支持中文的,所以QT也是支持中文的。很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确的赋给QString。

(2)乱码的问题是由编码和解码方式引起的。涉及到编码方式的地方有3个:

· 源码字符集(cpp和h文件)

· 执行字符集(编译器)

· 运行环境字符集(操作系统)

(3) Linux平台基本上统一为UTF8,基本不会出现乱码。QT中文乱码实际上基本发生在Windows平台上。

错误现象包括:

f21c065dbd998b3b555cfe87d92ec4e5.png

不能正常编译

d7a2e852c8853736a2e0509e012255d1.png

界面是乱码

2、解决方法一

代码文件装换方法参考《QT的跨平台开发问题(1)文件编码》

(1)Linux平台下,如果是在linux系统下创建的工程,不需要受任何更改,不会出现乱码。如果是其它系统平台,需要把文件转成标准utf8编码。

(2)windows平台下的QT4(VS2008),需要在main函数中添加

QTextCodec::setCodecForLocale(QTextCodec::codecForLocale()); QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

源文件编码是ansi。

(3)windows平台下的QT5(VS2015),在需要在main函数中添加QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());在每个中文字符前加QString::fromLocal8Bit("退出")

源文件编码是utf8-BOM。

这种方法基本可以解决所有情况的中文乱码问题。

3、 解决方法二

使用Qt Linguist(QT语言家)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值