官方推荐使用QTextCodec类提供了文本之间编码的转换
描述
Qt使用Unicode来存储字符串,并且提供QTextCodec来实现非unicode格式的编码之间的转换,将非unicode的编码转成unicode的例子如下所示:
QByteArray encodedString = "...";
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString string = codec->toUnicode(encodedString);
将unicode编码转换成非unicode编码:
QString string = "...";
QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
QByteArray encodedString = codec->fromUnicode(string);
将GBK转为UTF-8
QString GBK2UTF8(const QString inStr)
{
QTextCodec *gbk = QTextCodec::codecForName("GB18030");
QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");
QString g2u = utf8->fromUnicode(gbk->toUnicode(inStr));
return g2u;
}