string与QString转换(string既可以是utf8,也可以是gbk)
AtUtf8.h
[cpp]view plaincopy
#ifndef_QT_UTF8_H
#define_QT_UTF8_H
#include<QString>
#include<string>
usingstd::string;
classAfUtf8
{
public:
//QString(Unicode)->std::string(UTF8)
staticstringToString(constQString&qstr)
{
QByteArrayarr=qstr.toUtf8();
stringcstr=arr.data();
returncstr;
}
//std::string(UTF8)->QString(Unicode)
staticQStringToQString(conststring&cstr)
{
QStringqstr=QString::fromUtf8(cstr.c_str(),cstr.length());
returnqstr;
}
};
#endif
AtGbk.h
[cpp]view plaincopy
#ifndef_QT_GBK_H
#define_QT_GBK_H
#include<QString>
#include<QTextCodec>
#include<string>
usingstd::string;
classAfGbk
{
public:
//QString(Unicode)->std::string(GBK)
staticstringToString(constQString&qstr)
{
QTextCodec*pCodec=QTextCodec::codecForName("gb2312");
if(!pCodec)return"";
QByteArrayarr=pCodec->fromUnicode(qstr);
stringcstr=arr.data();
returncstr;
}
//std::string(GBK)->QString(Unicode)
staticQStringToQString(conststring&cstr)
{
QTextCodec*pCodec=QTextCodec::codecForName("gb2312");
if(!pCodec)return"";
QStringqstr=pCodec->toUnicode(cstr.c_str(),cstr.length());
returnqstr;
}
};
#endif
http://blog.csdn.net/bladeandmaster88/article/details/53469959
總結
以上是生活随笔為你收集整理的string与QString转换(string既可以是utf8,也可以是gbk)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL Thread pool 操作
- 下一篇: 连连看算法笔记