• 2880阅读
  • 1回复

关于字符编码的疑问? [复制链接]

上一主题 下一主题
离线haday
 
只看楼主 正序阅读 楼主  发表于: 2009-05-07
小弟有这样一个再简单不过的程序
------------------------------------------------------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命令显示)无关?在线等!!
离线haday
只看该作者 1楼 发表于: 2009-05-08
晕,怎么没人帮忙解答一下!
快速回复
限100 字节
 
上一个 下一个