• 4858阅读
  • 3回复

[提问]中文乱码 [复制链接]

上一主题 下一主题
离线qzroger
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-19
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
关键词: 求助显示乱码
我在language.h头文件里定义了const QString STR_TEST = QObject::tr("大小");把STR_TEST 写到dlg界面的label中 但显示出来的是乱码
我再main文件中定义了
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb2312"));    QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb2312"));    QTextCodec::setCodecForTr( QTextCodec::codecForName("gb2312"));求大侠指导
离线realfan

只看该作者 1楼 发表于: 2012-04-19
检查一下language.h源文件的编码格式.应该是源文件编码格式与你设的Codec不一致导致的乱码.
例如,如果language.h文件格式是UTF-8的,则main里要写成
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
离线roywillow

只看该作者 2楼 发表于: 2012-04-19
源码文件的编码与setCodec要一致
另外我觉得如果你想省事就老老实实用英文然后再翻译吧……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线淳于半邪

只看该作者 3楼 发表于: 2012-04-20
const QString STR_TEST = QObject::tr("大小");
最简单的就是把QObject::tr() ;改成QString::fromLocal8Bit() ;
Main文件什么都不用添加
快速回复
限100 字节
 
上一个 下一个