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的主要内容,如果未能解决你的问题,请参考以下文章
QT5中怎样把qstring转化为ASCII编码?如果字符串中含有中文的话,该怎样转换?