Seite 1 von 1

Text wird durcheinander ausgelesen

Verfasst: 30. August 2008 20:11
von torbx
Hallo, ich speichere einen Text ab:
QDataStream out(&file);
out << QString("WOEd").toUtf8();
Ich speichere nicht nur Text, deshalb QDataStream.

Beim Auslesen mache ich das:

Code: Alles auswählen

QDataStream in(&file);
	QString test;
	in >> test;
	qDebug("%s",test.constData());
Bekomme dann aber diese Ausgabe:
OWdE
Also je zwei Buchstaben vertauscht. Liegt wahrscheinlich an Utf8, weiß aber nicht wie ich das Problem lösen soll. Utf8 sollte bleiben, weil ich auch Umlaute speichern will.

Inhalt der Datei:

Code: Alles auswählen

0x00 0x00 0x00 0x04 'W' 'O' 'E' 'd'
Was mache ich falsch?

Verfasst: 30. August 2008 20:25
von Christian81
Du schreibst es utf-8 kodiert in den Stream, liest es aber als QString (also unicode) aus und wunderst Dich dass es nicht geht? :roll:

Verfasst: 30. August 2008 20:55
von torbx
Christian81 hat geschrieben:Du schreibst es utf-8 kodiert in den Stream, liest es aber als QString (also unicode) aus und wunderst Dich dass es nicht geht? :roll:
Nein ich wunder mich wie ich es machen muss. Dass es nicht geht seh ich ja.
Habe es jetzt ohne toUtf8 geschrieben und dann gehts. Aber mich würde es doch wundern wie ich es anders auch einlesen könnte.

Verfasst: 30. August 2008 21:01
von Christian81
Als QByteArray einlesen und von utf8 kodieren.