|
发表于 2004-10-14 23:57:17
|
显示全部楼层
回复: Qt编程中的中文显示问题
最初由 davidlee62 发表
我刚开始学习Qt+KDevelop编程,先照Qt的指南作了个Hello World, 接着试着修改QLabel("你好",...);结果出来的是乱码。我的KDE能够正确显示中文,那么错误在哪里呢?
David
其实,这是刚开始qt编程的几乎都会遇到的问题,而且也有很多文章回答了这个问题的。
这主要是因为文字编码的问题,qt显示用的是Unicode,而我们输入的中文一般都是gbk的,直接显示自然就是乱码了。
因此,我们需要进行编码的转换。Qt提供了一个类专门解决这类问题,叫做QTextCodec。我们可以这样使用:
- #include <qtextcodec.h>
- ...
- ...
- QCString chinese_string="你需要显示的文字“;
- QTextCodec *codec=QTextCodec::codecForName("gbk");
- QString string=codec->toUnicode(chinese_string);
- ...
- ...
复制代码
这样转换了之后,使用string这个QString就可以正常显示了!同时,这个方法对输入的中文字符的处理一样有效。 |
|