LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2872|回复: 3

为什么 QT 编的程序中文显示乱码?

[复制链接]
发表于 2003-4-29 22:02:47 | 显示全部楼层 |阅读模式
现在学习用QT编写程序,可生成的程序中文显示乱码,可直接写到窗体中的中文是正常的。如:
一个TextLabel,它的 text 属性直接写入中文,显示是正常的,可另一个 TextLabel ,在代码中修改它的 text 属性,使用
textLabel1->setText("中文支持"); // textLabel1为窗体中的一个 TextLabel
则运行时它显示为乱码。
同样,如一个 ListBox ,在它的 Item 属性中直接写入中文运行时显示正常,可在代码中增加一个 Item 时,使用:
listBox1->insertItem("中文支持");
运行显示乱码。
为什么?

运行环境:RH9.0 完全安装,Qt Designer 设计窗体和代码。
发表于 2003-4-30 10:28:58 | 显示全部楼层
qt程序内部使用的是Unicode,写在程序里的中文需要重local编码转化为Unicode,例如如果你使用的是redhat9 的中文,你需要从GB18030转化为Unicode

新版本的qt已经支持GB18030使用这个类转化 QG不8030Codec(好像是这样)

不过kde的开发人员建议使用翻译文件的方式来支持多语言。
 楼主| 发表于 2003-5-6 15:36:49 | 显示全部楼层
能具体说一下方法吗?如用什么函数.就如以下语句:
textLabel1->setText("中文支持");
怎样才能使它工作正常呢?
发表于 2008-5-24 17:12:41 | 显示全部楼层
对于Qt4.3.2,假设你的源文件是utf8编码的,这样弄:
#include <QTextCodec>

QTextCodec * BianMa = QTextCodec::codecForName ( "utf8" );
textLabel1->setText(BianMa->toUnicode("我爱妳!"));
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表