QT编码转换

官方推荐使用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;
}

参考资料

QTextCodec官方文档

posted @ 2021-05-11 09:54  Yuanb  阅读(711)  评论(0编辑  收藏  举报