任何编码先转换成统一编码toUnicode(),然后再转出fromUnicode();
gb2312转utf8:
QString ssss=QString::fromLocal8Bit("ceshi我是测试"); //注意此处定义gb2312编码的方式,要使用fromLocal8Bit()
gb2312ToUtf8(ssss);
utf8转gb2312:
入参是utf8编码的字符数组
(注意参数的编码格式一定要对,否则转换不出来,尤其是gb2312ToUtf8()这个函数,极为容易传入unicode编码格式的参数)
上代码:
void gb2312ToUtf8(QString strGb2312)
{
printf("@@@ gb2312 str is:%s\n",strGb2312.toLocal8Bit().data());
QTextCodec* utf8Codec= QTextCodec::codecForName("utf-8");
QTextCodec* gb2312Codec = QTextCodec::codecForName("gb2312");
QString strUnicode= gb2312Codec->toUnicode(strGb2312.toLocal8Bit().data());
QByteArray ByteUtf8= utf8Codec->fromUnicode(strUnicode);
char *utf8code = ByteUtf8.data();
printf("@@@ Utf8 strGb2312toUtf8:%s\n",utf8code);
}
///////////////////////////////////////////////////////////////////////
void utf8ToGb2312(char *strUtf8)