您的位置 首页 方案

处理Windows下Arm下Linux下Qt4程序的中文乱码问题

################################################################################操作系统:Win7垃圾版#QT:4.8.

###############################################################################

#操作系统:Win7废物版

#QT: 4.8.1

#操作系统:Winxp废物版

#QT: 4.8.1

#开发板:友善之臂Tiny6410 V1.2
#QT: 4.6.1
#QTE-arm: 4.7.0

#Write By Kinglate 20130806

###############################################################################

或许这个世界上没有人会像我相同遇到一个问题了,处理了,很高兴,一起也很悲伤!跨渠道编程适当苦逼,渠道是夸了,可是问题的处理方案并非夸渠道!适当头疼。其他的不想多说,挑个最典型的(处理正午乱码问题)跟我们共享一下,好让我们往后能少走弯路!

一、处理WindowsQt4程序中文乱码问题

1.办法一(该办法关于我的win7机器行不通,可是我的xp机器却没有问题,奇特吧?所以关于您的机器或许行不行。)

在main.cpp中找到int main(intargc,char*argv[])这个进口函数,在其里边参加以下四行代码:

2.在main.cpp中参加#include编码头文件,然后在int main(intargc,char*argv[])这个进口函数,在其里边参加以下一行代码:

QTextCodec::setCodecForTr(QTextCodec::codecForName(“GB2312”));

3.(至于加到什么方位,在{}内,只需不加在returna.exec();这行代码的后边就可以了!)完结后如下图所示:

4.需求运用中文的当地,仍是举个比如解说一下:

QMessageBox::information(this, tr(“衔接完结”), tr(“本地Ip为:”)+localIpStr+tr(“端口号为:”)+localport,QMessageBox::Ok);

测验成果:

5.办法二(适当好用一步到位)

在main.cpp中找到int main(intargc,char*argv[])这个进口函数,在其里边参加以下四行代码:

QTextCodec*codec=QTextCodec::codecForLocale();//设置文本为GB2312编码

QTextCodec::setCodecForTr(codec);//设置运用tr内的编码

QTextCodec::setCodecForLocale(codec);//设置本地编码

QTextCodec::setCodecForCStrings(codec);//设置字符串编码

(至于加到什么方位,在{}内,只需不加在returna.exec();这行代码的后边就可以了!)

完结后如下图所示:

需求运用中文的当地,仍是举个比如解说一下:

QMessageBox::information(this, tr(“衔接完结”), tr(“本地Ip为:”)+localIpStr+tr(“端口号为:”)+localport,QMessageBox::Ok);

测验成果:

二、处理Arm下Qt4程序的中文乱码问题

办法一:自己曾经常用的

1.在.cpp(非main.cpp)中参加#include //Qt的字符编码头文件

2.在每个需求用到中文的当地地点的函数体内设置中文字体编码,放在该函数体的榜首句即可:

QTextCodec::setCodecForTr(QTextCodec::codecForName(“utf8”));//设置中文字体编码

需求输入中文时要用tr(“我是中文!”)

3.仍是举个比如解说一下:

QMessageBox::warning(this, tr(“Waring”),tr(“输入用户ID或许暗码过错,请从头输入!”),QMessageBox::Yes);

测验成果:

办法二:(不一定行)

4.这个办法适当简略,在.cpp(非main.cpp)处,哪儿需求用到中文时trUtf8()函数即可,如:trUtf8(“我是中文!”)头文件都不需求加!

5.仍是举个比如解说一下:

QMessageBox::information(this, trUtf8(“翻开成功”), trUtf8(“现已成功翻开串口:”)+ui->portName_b->currentText(), QMessageBox::Ok);

测验成果:

三、处理Linux下Qt4程序的中文乱码问题

Linux下Qt4程序用得少,懒得搞,估量跟Windows下差不多,自己百度去吧!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/277039.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部