• 8617阅读
  • 7回复

[提问]用QString保存中文,怎么显示乱码?(而在未编译版本中报错) [复制链接]

上一主题 下一主题
离线adria
 

只看楼主 倒序阅读 楼主  发表于: 2009-11-16
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
使用Qt4.5.1和eclipse,我有两个版本,一个版本是未编译过的,windowsXpPerfessional。另一个版本安装好后编译过WinXPSP2。
如题,对未编译过的版本,用QString保存中文,
        QString test;
        test="中国";
    ui.label_2->setText(test);
报如下错误
对已经编译过的版本,不报错,但显示的是乱码。
我编译的命令是这样的:
qtvars.bat compile_debug
离线lvyankun
只看该作者 1楼 发表于: 2009-11-17
加上下面的内容行不行?
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
离线紫霞风语
只看该作者 2楼 发表于: 2009-11-17
QString test;
test.fromLocal8Bit("中国");
ui.label_2->setText(test);
应该就可以了
离线dym123_dym
只看该作者 3楼 发表于: 2009-11-17
多多
离线dym123_dym
只看该作者 4楼 发表于: 2009-11-17
QTextCodec::setCodecForTr(QTextCodec::codecForLocale(  ));
离线adria

只看该作者 5楼 发表于: 2009-11-19
我试了一下,如果发布到其他机器上的 话,QTextCodec::setCodecForTr(QTextCodec::codecForLocale(  ));这个方法比较保险。谢了各位!
离线dbzhang800

只看该作者 6楼 发表于: 2009-11-19
引用第5楼adria于2009-11-19 16:57发表的  :
我试了一下,如果发布到其他机器上的 话,QTextCodec::setCodecForTr(QTextCodec::codecForLocale(  ));这个方法比较保险。谢了各位!


这个其实比较 不 靠谱,
除非你能保证别人的locale和你的一样
离线duduqq

只看该作者 7楼 发表于: 2009-11-19
还是用QT的翻译器来做多语言的好
快速回复
限100 字节
 
上一个 下一个