pyqt4的编码问题Qstring怎么转换为string

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyqt4的编码问题Qstring怎么转换为string相关的知识,希望对你有一定的参考价值。

参考技术A std::string cstr;
QString qstring;
//****从std::string 到QString
qstring = QString(QString::fromLocal8Bit(cstr.c_str()));
//****从QString 到 std::string
cstr = string((const char *)qstring.toLocal8Bit());本回答被提问者采纳

Qt532_字符编码转换

1、测试代码:

    // http://blog.csdn.net/changsheng230/article/details/6588447
    QString str = QString::fromLocal8Bit("我是中国人");
    QString str2 = QString("本地文本");  // 乱码
    qDebug() << str;
    qDebug() << str2;

    // Method 2
    QTextCodec *codec = QTextCodec::codecForName("GBK"); // get the codec for KOI8-R
    //QString locallyEncoded = codec->toUnicode( "显示中文" );
    QString locallyEncoded = codec->toUnicode( "我是中国人" );
    qDebug() << locallyEncoded << endl;

    codec = QTextCodec::codecForName("gbk"); // get the codec for KOI8-R
    locallyEncoded = codec->toUnicode( "我是中国人" );
    qDebug() << locallyEncoded << endl;

    wchar_t *pwc = L"我是中国人";
    for (size_t i=0; i<wcslen(pwc); i++)
    {
        ushort us = pwc[i];
        qDebug() << "\t" << QString::number(us, 16).leftJustified(2, 0);
    }
    qDebug() << "";

    QChar *pcs = (QChar*)str.unicode();
    for (int i=0; i<str.length(); i++)
    {
        QChar c = pcs[i];
        ushort us = c.unicode();
        qDebug() << "\t" << QString::number(us, 16).leftJustified(2, 0);
    }
    qDebug() << "";

    //QChar *pcs = locallyEncoded.data();
    pcs = (QChar*)locallyEncoded.unicode();
    for (int i=0; i<locallyEncoded.length(); i++)
    {
        QChar c = pcs[i];
        ushort us = c.unicode();
        qDebug() << "\t" << QString::number(us, 16).leftJustified(2, 0);
    }

 

2、

 

以上是关于pyqt4的编码问题Qstring怎么转换为string的主要内容,如果未能解决你的问题,请参考以下文章

qt中怎么把qbytearray转化为qstring

QT5中怎样把qstring转化为ASCII编码?如果字符串中含有中文的话,该怎样转换?

请问QT怎么转换成LPCTSTR 可以使用的字母, 比如QString str1="text"; 接下来怎么做

PYQT 字符操作

Qt532_字符编码转换

Qt char * 转QString