Qt讀取TXT文件時,GBK與UTF-8編碼判斷


讀取txt文件時,很多時候無法獲取文件的編碼格式。如果直接進行使用,則有可能出現亂碼。需要在使用前將其轉為Unicode(Qt的默認編碼格式)。

雖然實際的編碼格式種類非常多,但平常主要使用的有GBK與UTF-8兩種。可以依次嘗試轉換,如果轉換出現無效字符則認為不是該種編碼格式。

 

QString GetCorrectUnicode(const QByteArray &ba)
{
    QTextCodec::ConverterState state;
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QString text = codec->toUnicode( ba.constData(), ba.size(), &state);
    if (state.invalidChars > 0)
    {
        text = QTextCodec::codecForName( "GBK" )->toUnicode(ba);
    }
    else
    {
        text = ba;
    }

    return text;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM