Seite 1 von 1

QString Unicode binär serialisieren

Verfasst: 9. Juli 2008 16:49
von T1c4L
Hi alle!

Wie kann man einen QString welcher mit z.beispiel russichen symbolengefüllt ist "еуые сщву" mittels QT serialisieren?

Mein erster ansatz sah so aus:

Code: Alles auswählen

QString str; // gefüllt mit unicode zeichen
Qfile file;
file.open(params)

file.write(   str.toLatin1() );

file.close
Aber toLatin1() verwuschtelt meinen string. Habt ihr eine Idee wie ich das machen könnte?

Danke im voraus!

Cheers,
Mike

Verfasst: 9. Juli 2008 17:23
von upsala
QTextStream?

Verfasst: 9. Juli 2008 17:42
von T1c4L
kann ich damit den unicode string auch binär schreiben?

Verfasst: 10. Juli 2008 07:46
von macman
Mir scheint Du hast ein Problem mit der Doku. Auf QTextStream wurde schon verwiesen und dann hast Du das wohl nicht gefunden.

Verfasst: 10. Juli 2008 09:05
von RHBaum
Weisst du was er serialisieren will ?
kann es sein, das die unicode strings nur teile der daten sind, und der rest dann so "zeugs", was man nur schlecht in nen textstream pappen kann, ohne hinterher mit erheblichen aufwand das zeugs zurueckzuconvertieren muessen.

So abartig find ich seine frage nicht ! Sollt halt nur schreiben das er nicht in nen Textstream serialisieren kann / will.

@T1c4L
klar kann man unicode "binaer" serialisieren.
z.b. einfach als UTF-16 behandeln ...
- const ushort * QString::utf16 () const
- QString QString::fromUtf16 ( const ushort * unicode, int size = -1 )

Felder von shorts wirst hoffentlich selber wegschreiben koennen ...

Ciao ...

Verfasst: 11. Juli 2008 13:49
von T1c4L
hey RHBaum vielen dank fuer die hilfe!
Ich probier das mal mit utf16, wie ich ein ushort wegschreib weiss ich noch nicht.

Bisher hatte ich meine string via ofstream weggeschrieben like this:

Code: Alles auswählen

ofstream::write(char*, len);
muss mal schauen, den alten weg kann ich jetzt schonmal nicht nehmen da würden mir bestimmt beim schreiben dann daten verloren gehen?

ich google mal bin aber fuer help dankbar. da ich unter zeitdruck steh :D

thx nochmal an alle poster!! ich lerne immer dazu auch wenn bei manchen posts mir nicht geholfen wird!!

cheers,
mike