Qt4、Qt5等Qt版本解决中文乱码问题

16 篇文章 0 订阅

在网上找了很长时间,大部分都是其他人瞎折腾转发的,很多都不行,实用性很低,现在写的这个总结也是在网上找了很久总结出来的,经本人在Qt4.5和Qt5.3上面测试确实可行

我们都是中国人,很多标题用的都是中文,所以直接在main函数中定义如下:

 QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));

别忘记加上 #include <QTextCodec> 这个头文件

使用中文时不需加tr()函数。

解决读取ini文件中中文乱码

QSettings settings("xxxx.ini",QSettings::IniFormat);

settings.setIniCodec(QTextCodec::codecForName("GB2312"));   //在此添加设置,即可读写ini文件中的中文

settings.beginGroup("company");

 

解决读取中文文件中文的乱码
QFile file("xxxx.txt");
QTextStream stream(file,QIODevice::ReadOnly);
stream.setCodeC( QTextCodec::codecForName("GB2312") );
stream.readAll();

 

如果进行上述设置,在自己机器上成功但是在别人的机子上还是出现乱码的问题该如何办呢?

很简单,因为别人的机器上缺少那个字符库文件,这个时候,你发布软件的时候将那个库带上去了就行了。

将C:\Qt\4.8.4\plugins\codecs 这个文件夹拷贝进你发布软件的exe文件下,这个文件夹与你那个exe文件位于同一目录就可以了。

注意:你编译的exe文件与你拷贝进的字符库是同一版本的Qt才行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值