1 window中文GBK编码和Unicode编码转换
//GBK‐>QStringQStringstr=QString::fromLocal8Bit("新浪微博");
//QString‐>GBKQStringtext=ui.lineEdit‐>text();QByteArraybytes=text.toLocal8Bit();constchar*gbk=bytes.data();
2 Linux中文中文编码和Unicode编码转换
UTF‐8‐>QString:charutf8[]={0xE4,0xBD,0xA0,0xE5,0xA5,0xBD,0};QStringstr2=QString::fromUtf8(utf8);
QString‐>UTF‐8:QStringtext=ui.lineEdit‐>text();QByteArraybytes=text.toUtf8();constchar*utf8=bytes.data();intsize=bytes.size();
3 使用QTextCodec类实现编码<pre name="code" class="cpp">//QString(Unicode)‐>std::string(GBK)staticstringFromUnicode(constQString&qstr){QTextCodec*pCodec=QTextCodec::codecForName("gb2312");if(!pCodec)return"";QByteArrayarr=pCodec‐>fromUnicode(qstr);stringcstr=arr.data();returncstr;}
//std::string(GBK)‐>QString(Unicode)staticQStringToUnicode(conststring&cstr){QTextCodec*pCodec=QTextCodec::codecForName("gb2312");if(!pCodec)return"";QStringqstr=pCodec‐>toUnicode(cstr.c_str(),cstr.length());returnqstr;}
如果觉得《Qt中文编码和QString类Unicode编码转换》对你有帮助,请点赞、收藏,并留下你的观点哦!