我想在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
编辑:你建议我用什么来def find_neighours(index, x_size, y_size):
neighbours = []
x1, y1, = index
for x_move in (-1, 0, 1):
for y_move in (-1, 0, 1):
if x_move == 0 and y_move == 0:
continue
x2, y2 = x1 + x_move, y1 + y_move
if x2 < 0 or x2 >= x_size:
continue
if y2 < 0 or y2 >= y_size:
continue
neighbours.append((x2, y2))
return neighbours
多行?
答案 0 :(得分:3)
您需要知道文件中使用的是什么编码(charset)。然后,您将使用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;