簡體   English   中英

從文件中的字符串轉換QString

[英]Converting QString from string in a file

我想在QLabel設置文本,所以我需要使用QString 但是我讀了一個文件,文本中含有重音。 我嘗試了QString::fromUtf8()但是它不起作用。

任何想法?

string line;
QString lineTranslate;
getline(file, line);
lineTranslate = QString::fromStdString(line);
m_nomCourant->setText(QString::fromLatin1("<u><strong>Nom courant :</strong></u> ") + lineTranslate);

所需的輸出:

Nom courant : Requin
Nom scientifique : Carcharhinus menalopterus

Habitat : Côtier / Dans les zones coralliennes jusqu'à -30m
Famille : Carcharhinidés

實際輸出:

Nom courant : Requin
Nom scientifique : Carcharhinus menalopterus

Habitat : C?tier / Dans les zones coralliennes jusqu'? -30m
Famille : Carcharhinid?s

編輯:您如何建議我使用具有多行的QString

您需要知道文件中使用了哪種編碼(字符集)。 然后,您將使用fromUtf8或其他方式-使用QTextCodec

來自Qt docs的示例:

QTextCodec *codec = QTextCodec::codecForName("Shift-JIS");
QTextDecoder *decoder = codec->makeDecoder();

QString string;
while (new_data_available()) {
    QByteArray chunk = get_new_data();
    string += decoder->toUnicode(chunk);
}
delete decoder;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM