• 20821阅读
  • 21回复

[提问]qt中文乱码,被这么了两天了,高人指点下,谢!! [复制链接]

上一主题 下一主题
离线lzhwwy
 

只看楼主 倒序阅读 楼主  发表于: 2008-05-05
qt中文乱码,被这么了两天了,高人指点下,谢!!
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
环境是FC5,eclipse 3.2 , qt4.3.0rc1

网上搜索到的方法都试过了,还是不行,比如:
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));

---------------------------------
最后我用QTranslator 的load函数加载qm_zh_CN.qm文件也不行,,
大家帮帮忙吧!!
离线captain08
只看该作者 1楼 发表于: 2008-05-05
说的详细点
离线lzhwwy

只看该作者 2楼 发表于: 2008-05-05
比如在main函数中添加QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));或者是GB2312换成是GB18030什么的,
我有一个QLabel label =new QLabel(QWidget);
label->setText(tr("晕了"));
然后吧运行程序,label里面是空,或者逗号什么的
离线267472690
只看该作者 3楼 发表于: 2008-05-05
在这之前加2句,设置下字体:
    QFont font1("unifont",16,75,false);//unifont
    qApp->setFont(font1);
离线youngst

只看该作者 4楼 发表于: 2008-05-05
如果用楼上方法还是乱码 ,
你把你有CPP文件 ,装换成你QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));这里相同编码集
离线lzhwwy

只看该作者 5楼 发表于: 2008-05-05
楼上,设字体也不行,,请问如何换装cpp字符集阿?
离线XChinux

只看该作者 6楼 发表于: 2008-05-05
干脆都用UTF-8就得了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tingxx

只看该作者 7楼 发表于: 2008-05-05
不明白为什么不用Qtranslator这种方式,非要往里面写中文,唉
QT自带的文档真是个好东西
一定要好好看呀
离线youngst

只看该作者 8楼 发表于: 2008-05-05
比如在main函数中添加QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));或者是GB2312换成是GB18030什么的,
我有一个QLabel label =new QLabel(QWidget);
label->setText(tr("晕了"));


你这里设置成GB2312或者GB18030编码,所以你的有中文CPP文件编码就需要设置成GB的字符集
如果你设置成QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));,那文件编码需要设成utf-8.
离线浪漫天使
只看该作者 9楼 发表于: 2008-05-06
楼主,中文搞定了没有,建议你到24929450来聊聊
离线sgllin

只看该作者 10楼 发表于: 2008-05-10
两点建议,1。注意你用的编辑器的编码,程序里面QTextCodec::setCodecForTr()函数中设定的编码要和你的编辑器的编码一致。2.试试utf8编码。
离线redtin

只看该作者 11楼 发表于: 2008-05-12
同意楼上。
存到磁盘上的文件编码要和设置的编码匹配。
离线binghuiliang
只看该作者 12楼 发表于: 2008-05-12
QString str = trUtf8("你坏坏啊你!");
My blog:
http://blog.csdn.net/binghuiliang
离线lzhwwy

只看该作者 13楼 发表于: 2008-05-12
暂时还没搞定,因为我想move on,哈哈

youngst说的有点道理,我当时也去设置cpp的字符集的地方看了,是utf-8的,不过也没有gb。。。的选项阿,晕。。。
离线hfnet
只看该作者 14楼 发表于: 2008-05-13
label->setText(QString::fromLocal8Bit("试试这样啊"))
离线unforgiver

只看该作者 15楼 发表于: 2008-05-14
#include <QtGui/QApplication>
#include "lowresistance2.h"
#include <qtextcodec.h>

int main(int argc, char *argv[])
{

  QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
    QApplication a(argc, argv);


    QDesktopWidget  *d  =  QApplication::desktop(); 
    int  width  =  d->width();          //  returns  desktop  width 
    int  height  =  d->height();        //  returns  desktop  height 

    lowResistance2 w;
    w.setWindowTitle("多功能智能低电阻测试系统");
    w.setGeometry(0,0,width,height*24.755/27);
    w.show();
    a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
    return a.exec();
}

看我的例子
离线gemscorpio

只看该作者 16楼 发表于: 2009-01-31
15楼的代码果然管用,谢谢了哦
离线bobobo80
只看该作者 17楼 发表于: 2009-01-31
linux下是不是要用UTF-8?
离线wd007

只看该作者 18楼 发表于: 2009-01-31
不一定的,注意编码转换,加上翻译也可以的
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线iptton

只看该作者 19楼 发表于: 2009-02-02
源代码是UTF8就把GBK改成UTF8应该可以的了
[url] http://www.alloyteam.com/2012/05/web-front-end-tool-rythem-1/ [url]
离线ganzhiabc

只看该作者 20楼 发表于: 2011-08-18
哎 楼主解决了没? 我现在也出现这个问题了!弄了好几天了。。。 就是不显示中文

我是将windows下写的QT程序,拷贝到虚拟机中的ubuntu下重新编译运行的,  QTextCodec也试过了 就是不行。。。。。。。

离线caikeyter
只看该作者 21楼 发表于: 2012-09-12
我的是,在虚拟机里面一点问题都没有,到真机里面,就是  w.setWindowTitle("多功能智能低电阻测试系统"); 这个是正常的显示中文,其他的都是乱码。太奇怪了,之前都可以正常显示中文,后来我改了一下设置,就变乱码了,之后就改不会来了,不知道什么原因。
向前辈学习,向高手靠近
快速回复
限100 字节
 
上一个 下一个