小弟有这样一个再简单不过的程序
------------------------------------------------------test.cpp-------------------------------------------------------------------------------------------------
#include <QApplication>
#include <QWidget>
#include <QLabel>
#include <QTextCodec>
#include <QPushButton>
#include <QVBoxLayout>
int main(int argc,char* argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
QWidget* pWidget = new QWidget;
pWidget->setWindowTitle(QObject::tr("One World,OneDream!---同一个世界,同一个梦想!"));
QLabel label(pWidget);
label.setText(QObject::tr("One World,One Dream!---同一个世界,同一个梦想!"));
pWidget->show();
return app.exec();
}
------------------------------------------------------------------------------------------------------------------------------------------------------
test.cpp文件本身有个编码utf8,所以程序中这样写QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
编译,运行后汉字应该是可以显示的,如果cpp文件的编码改成gb18030,那么上面那行代码的参数改成gb18030也是能正常显示的,是不是只要QTextCodec::setCodecForTr(QTextCodec::codecForName("XXX"));和cpp文件本身的编码一致,汉字就可以正常显示,而与操作系统本身的字符编码(locale命令显示)无关?在线等!!