首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手QT编程控件下中文乱码有关问题

2012-08-09 
新手QT编程控件上中文乱码问题QPushButton button(退出)程序运行后 显示的button上推出字样为乱码请问

新手QT编程控件上中文乱码问题
QPushButton button("退出");
程序运行后 显示的button上推出字样为乱码

请问哪位大侠知道怎么解决

[解决办法]
编码的问题,在main函数的第二行加上如下代码:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
意思是用tr宏或者QString对象的时候,其中的字符按照gb18030解释
gb18030是中华人民共和国的一个字符集编码标准,类似的还有gb2312,gbk
[解决办法]
得看你的源码使用的是什么编码。
如果源码使用 UTF-8 编码,则 QTextCodec 也应该设置为 UTF-8 .

这是一个源码使用UTF-8编码的例子:

C/C++ code
#include <QtCore/QCoreApplication>#include <QTextCodec>#include <QTextStream>#include <stdlib.h> // systemint main(int argc, char *argv[]){    // or utf8 utf-8 UTF8    QTextCodec *codec = QTextCodec::codecForName("UTF-8");    QTextCodec::setCodecForLocale(codec);    QTextCodec::setCodecForCStrings(codec);    QTextCodec::setCodecForTr(codec);    QCoreApplication a(argc, argv);    QString str("世界,你好!");    QTextStream out(stdout);#ifdef _WIN32    out.setCodec("GBK");#endif    out << str << endl;#ifdef _WIN32    system("pause");#endif    return 0;} 

热点排行