新手QT编程控件上中文乱码问题

时间:2022-06-01 12:20:49
QPushButton button("退出");
程序运行后 显示的button上推出字样为乱码

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

5 个解决方案

#1


编码的问题,在main函数的第二行加上如下代码:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
意思是用tr宏或者QString对象的时候,其中的字符按照gb18030解释
gb18030是*的一个字符集编码标准,类似的还有gb2312,gbk

#2


得看你的源码使用的是什么编码。
如果源码使用 UTF-8 编码,则 QTextCodec 也应该设置为 UTF-8 .

这是一个源码使用UTF-8编码的例子:
#include <QtCore/QCoreApplication>
#include <QTextCodec>
#include <QTextStream>
#include <stdlib.h> // system

int 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;
}


#3


thankyou  解决了!

#4


谢谢
thank you 

#5


该回复于2012-07-19 09:55:53被版主删除

#1


编码的问题,在main函数的第二行加上如下代码:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
意思是用tr宏或者QString对象的时候,其中的字符按照gb18030解释
gb18030是*的一个字符集编码标准,类似的还有gb2312,gbk

#2


得看你的源码使用的是什么编码。
如果源码使用 UTF-8 编码,则 QTextCodec 也应该设置为 UTF-8 .

这是一个源码使用UTF-8编码的例子:
#include <QtCore/QCoreApplication>
#include <QTextCodec>
#include <QTextStream>
#include <stdlib.h> // system

int 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;
}


#3


thankyou  解决了!

#4


谢谢
thank you 

#5


该回复于2012-07-19 09:55:53被版主删除