Wie zu Lesen die UTF-8-text aus Datei mit Qt?
Habe ich einige Probleme mit dem Lesen von UTF-8-codierten text aus Datei. Meine version liest nur ASCII-Zeichen.
#include <QtCore>
int main()
{
QFile file("s.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
return -1;
}
QTextStream in(&file);
while(!in.atEnd())
{
QString line = in.readLine();
qDebug() << line;
}
}
s.txt:
jąkać się
ślimak
śnieżyca
Ausgabe:
"jka si"
"limak"
"nieyca"
Was sollte ich verwenden?
InformationsquelleAutor Maciej Ziarko | 2011-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen
QTextStream::setCodec()
:Vielleicht ist Ihr qDebug Ausgabe-Konsole nicht unterstützt, diese Zeichen. Das wäre eine vernünftige Quelle "?". Versuchen, die Zeichenfolge in ein QLabel auf dem Bildschirm.
Es ist nicht das Problem. dDebug() << QString("śnieżyca"); funktioniert perfekt.
Bist du sicher, dass deine input-Datei tatsächlich UTF-8?
Wie hast du es beheben?
InformationsquelleAutor John Flatness
Sie unwirksam machen:
Was ist Ihre Standard-locale? Wenn
qDebug() << QString("śnieżyca");
funktioniert perfekt, es bedeutet, dass Ihr system konfiguriert, die ein nicht-ASCII-Gebietsschema. Sie sollten versuchenqDebug() << line.toLocal8Bit();
InformationsquelleAutor Yi Zhao
War ich auch
????
beim Lesen einer XML-Datei mitQXmlStreamReader
. Ich fixierte ihn, indem Sie dies vor dem Lesen der Datei:InformationsquelleAutor this.lau_