【问题标题】:Converting QString from string in a file从文件中的字符串转换 QString
【发布时间】:2015-04-28 07:06:36
【问题描述】:

我想在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

【问题讨论】:

标签: c++ qt


【解决方案1】:

您需要知道文件中使用的编码(字符集)。然后你可以使用fromUtf8,或者其他的——使用QTextCodec

来自 Qt 文档的示例:

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;

【讨论】:

  • 感谢您的回答。我没想到。所以我将文件的编码更改为 Utf8。它适用于我的最后一个代码。谢谢古吉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多