• 11363阅读
  • 14回复

[提问]trUtf8与中文乱码【已解决】 [复制链接]

上一主题 下一主题
离线wayne
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-07
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
有下面一段代码,编译运行后却是乱码

  1. #include <QApplication>
  2. #include <QHBoxLayout>
  3. #include <QSlider>
  4. #include <QSpinBox>
  5. #include <QLabel>
  6. #include <QObject>
  7. //#include <QTextCodec>
  8. int main(int argc, char *argv[])
  9. {   
  10.     QApplication app(argc, argv);
  11.     QWidget *window = new QWidget;
  12.     window->setWindowTitle(QObject::trUtf8("输入你的年龄"));
  13.     QSpinBox *spinBox = new QSpinBox;
  14.     QSlider *slider = new QSlider(Qt::Horizontal);
  15.     spinBox->setRange(0, 130);
  16.     slider->setRange(0, 130);
  17.     QObject::connect(spinBox, SIGNAL(valueChanged(int)),
  18.                                      slider, SLOT(setValue(int)));
  19.     QObject::connect(slider, SIGNAL(valueChanged(int)),
  20.                                      spinBox, SLOT(setValue(int)));
  21.                                        
  22.     spinBox->setValue(35);
  23.     QHBoxLayout *layout = new QHBoxLayout;
  24.     layout->addWidget(spinBox);
  25.     layout->addWidget(slider);
  26.    
  27.     QLabel* label=new QLabel(QObject::trUtf8("你的年龄:"));
  28.    
  29.     QVBoxLayout* mainLayout=new QVBoxLayout;
  30.     mainLayout->addWidget(label);
  31.     mainLayout->addLayout(layout);
  32.    
  33.     window->setLayout(mainLayout);
  34.     window->resize(300,50);
  35.     window->show();
  36.     return app.exec();
  37. }   




于是我把QObject::trUtf8换成了QObject::tr,又加了一行QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
还是乱码,

但我把"UTF8" 换成 "GB2312"  是正常的



这该怎么解释啊
[ 此帖被午小夜在2010-04-08 00:44重新编辑 ]
离线yangfanxing
只看该作者 1楼 发表于: 2010-04-07
GB2312!中文的编码方式
PHPWind好恶心。。。不想看这种界面。。。
离线wayne

只看该作者 2楼 发表于: 2010-04-07
Utf8 不支持中文吗
离线yangfanxing
只看该作者 3楼 发表于: 2010-04-07
Utf8本质上是传输协议,与编码不是完全一回事儿~
PHPWind好恶心。。。不想看这种界面。。。
离线wayne

只看该作者 4楼 发表于: 2010-04-07
呵呵,不懂,有时间我多看看中文编码以及传输协议。。。

可是有人用utf8成功编译了上面的程序啊
离线yangfanxing
只看该作者 5楼 发表于: 2010-04-07
who?
PHPWind好恶心。。。不想看这种界面。。。
离线wayne

只看该作者 6楼 发表于: 2010-04-07
离线wayne

只看该作者 7楼 发表于: 2010-04-07
换成GBK也可以~~

=======================
在哪可以查看codecForName的所有可选的入口参数值
离线yangfanxing
只看该作者 8楼 发表于: 2010-04-07
引用第6楼wayne于2010-04-07 22:54发表的  :
http://xcf007.blog.51cto.com/471707/106377/

这个可能是安装过translator的结果~你先无视之。
PHPWind好恶心。。。不想看这种界面。。。
离线yangfanxing
只看该作者 9楼 发表于: 2010-04-07
引用第7楼wayne于2010-04-07 23:03发表的  :
换成GBK也可以~~
=======================
在哪可以查看codecForName的所有可选的入口参数值


当然,GB2312是爷爷,GBK是儿子,18030是孙子,不是特殊字符都可以;

参数不多,中文的话用这三个就OK了~
其它的让外国朋友折腾去吧~
PHPWind好恶心。。。不想看这种界面。。。
离线wayne

只看该作者 10楼 发表于: 2010-04-07


谢谢大侠了,你真好
离线yangfanxing
只看该作者 11楼 发表于: 2010-04-07
不好乱叫~
坛子里大虾s及大大虾s对此纷纷表示无语~~~
PHPWind好恶心。。。不想看这种界面。。。
离线wayne

只看该作者 12楼 发表于: 2010-04-08
呵呵,
我知道他们嫌弃我们这些刚起步的新手,在我眼里,他们“不好”
离线yangfanxing
只看该作者 13楼 发表于: 2010-04-08
童鞋你不想在坛子里混啦~~~
PHPWind好恶心。。。不想看这种界面。。。
离线wyfoyxy
只看该作者 14楼 发表于: 2010-11-09
在Qt Desiger中把汉字转换为trUtf8所支持的代码就可以啦,如:trUtf8("\347\273\264\346\214\201\346\234\215\345\212\241"))
快速回复
限100 字节
 
上一个 下一个