zhaoh 发表于 2013-8-7 08:45:58

解决Windows下Arm下Linux下Qt4程序的中文乱码问题

解决Windows下Arm下Linux下Qt4程序的中文乱码问题################################################################################操作系统: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###############################################################################也许这个世界上没有人会像我一样遇到一个问题了,解决了,很开心,同时也很伤心!跨平台编程相当苦逼,平台是夸了,但是问题的解决方案并非夸平台!相当头疼。其他的不想多说,挑个最典型的(解决中午乱码问题)跟大家分享一下,好让大家今后能少走弯路!一、解决Windows下Qt4程序的中文乱码问题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下差不多,自己百度去吧!


yangcctv 发表于 2013-8-7 14:13:33

打破老婆终身制,实行小姨股份制。引入小姐竞争制,推广情人合同制。

xglys 发表于 2013-8-7 18:24:33

老天,你让夏天和冬天同房了吧?生出这鬼天气!

fdhfgh 发表于 2013-8-7 20:38:39

此地禁止大小便,违者没收工具。

苏泽湛 发表于 2013-8-7 21:59:03

为中华而努力读书!一包中华好多钱啊~~~

徐冬丽 发表于 2013-8-7 23:21:28

吃饭与ml是第一生产力。

dongfangho 发表于 2013-8-8 01:46:11

不在课堂上沉睡,就在酒桌上埋醉。
页: [1]
查看完整版本: 解决Windows下Arm下Linux下Qt4程序的中文乱码问题