Qt讀取文件時中文亂碼問題


在默認情況下,Qt 以 Unicode 格式處理文本字符,因此,字符本身是不會有問題的。之所以出現亂碼,原因在於 Qt 不知道將 Unicode 字符以何種方式顯示出來。        文本文件含有簡體中文,應指定為GBK。

 

void Widget::readFromFile()
{
    //指定為GBK
    QTextCodec *codec = QTextCodec::codecForName("GBK");
 
    //打開文件
    QFile file("1.txt");
 
    //如果打開文件失敗,直接退出
    if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
        return;
 
    //當未到達文件結束位置
    while(!file.atEnd())
    {
         //讀取一行文本數據
         QByteArray line = file.readLine();
         //將讀取到的行數據轉換為Unicode
         QString str = codec->toUnicode(line);
         //將得到的字符設置到編輯框中顯示
         ui->edit->append(str);
     }
}

 


免責聲明!

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



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