最近编了个程序想显示中文,但是却显示的是乱码,源代码如下:
#include <QtGui/QApplication>
#include <QtGui/QWidget>
#include <QtGui/QLabel>
#include <QtCore/QTextCodec>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QTextCodec *codec = QTextCodec::codecForName("gb18030");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
//QFont font1("unifont",16,75,false);
//qApp->setFont(font1);
QWidget *pwidget=new QWidget;
QLabel label(pwidget);
label.setText(QObject::tr("同一个世界,同一个梦想"));
pwidget->show();
return app.exec();
}
在网上查了一下才发现原来是源代码的编码问题,如果源代码是utf-8的话, QTextCodec *codec = QTextCodec::codecForName("utf-8")就行了,如果是GB18030的话改成 QTextCodec *codec = QTextCodec::codecForName("gb18030")就行了,依次类推。
查看源代码的编码格式可以用另存为查看。