代碼清單如下:復制代碼QFile inputFile(tr(":/input.txt")); inputFile.open(QIODevice::ReadOnly); QTextStream in(&inputFile); QString line = in.readAll(); inputFile.close(); // QString info = tr("中文"); //ui->textEdit->setPlainText(info); ui->textEdit->setPlainText(tr(line.toStdString().c_str()));我從input.txt(utf-8編碼)檔案中讀取內容,如果直接ui->textEdit->setPlainText(line);就會出現亂碼,而上面的info="中文"的話也會亂碼,加了tr就不會。ui->textEdit->setPlainText(tr(line.toStdString().c_str()));也不會亂碼,但是這么寫是不是太麻煩了,請問,有什么簡單一點的寫法嗎,起碼不需要這么多步驟的。謝謝
uj5u.com熱心網友回復:
永遠記住一點想省事就別在代碼中用中文如果你確定那個txt就是utf8的話強制給textstream設定編碼試試呢?uj5u.com熱心網友回復:
用tr的話,里面還是不要用中文了……要用中文試試QString::fromLocal8Bit("中文中文");或者QString::fromUtf8(in.readAll());uj5u.com熱心網友回復:
多看點QT編碼問題,看多了也就那樣uj5u.com熱心網友回復:
檔案讀入的時候,如果能確認檔案的編碼方式可以指定codecuj5u.com熱心網友回復:
在main()中加入下面這行代碼: QTextCodec::setCodecForTr(QTextCodec::codecForLocale());uj5u.com熱心網友回復:
void UiUtil::enableUtf8() { QTextCodec *codec = QTextCodec::codecForName("UTF8"); if (codec) { QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); }}uj5u.com熱心網友回復:
main函式中使用上面的代碼,讓Qt程式默認使用UTF-8編碼顯示字符,“想省事就別在代碼中使用中文“,不占同這一點,呵呵uj5u.com熱心網友回復:
參考第7樓jorneyr于2011-11-21 10:53發表的 :main函式中使用上面的代碼,讓Qt程式默認使用UTF-8編碼顯示字符,“想省事就別在代碼中使用中文“,不占同這一點,呵呵uj5u.com熱心網友回復:
CSDN的尿性真差,從別的網站上copy過來的內容,被我發現原網站了,還刪我的貼,說我發廣告?廣告你妹啊。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/104967.html
標籤:其他技術討論專區
上一篇:超聲波 模塊
