Hallo Leute.
Seid einiger zeit beschäftige ich mich mit QT ( Speziel QSql und co ).
Ich möchte ganz einfach einen kyrillischen text, den ich in ein Edit Control (MFC) kopiert habe in eine Oracle ( XE ) Datenbank speichern. Die Variable für das Edit Control ist ein CString und diese wird korrekt angezeigt. Nun ja einen CString kann man ja nicht einfach so in eine Tabelle inserten. Wenn ich diesen CString nun in einen QString umwandle kommt nur Müll bei raus.
Ich füge Daten mit dem Qquery ein.
Ich stehe da im Moment auf dem Schlauch und hoffe mir kann jemand behilflich sein.
MFG Simon
Kyrillisch in Datenbank speichern
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Schau Dir mal QTextCodec an und beschäftige dich asllg. mit Codecs bzw. Unicode.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Hallo Christian81,
danke für deine Antwort. Ich habe mich mal damit befasst. Damit habe ich dann folgendes gebaut:
So beschreibt es ja auch die Doku. Jedoch kommt trotzdem nur Müll bei raus.
Ich sitze schon seid Tagen an diesem Problem und find keine Lösung. Hast du noch nen Tip für mich.
Danke
danke für deine Antwort. Ich habe mich mal damit befasst. Damit habe ich dann folgendes gebaut:
Code: Alles auswählen
QString valL = queryL.value(0).toString();
QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
QByteArray encodedString = codec->fromUnicode(valL);
QMessageBox::information(0,"Anzeige",encodedString);
Ich sitze schon seid Tagen an diesem Problem und find keine Lösung. Hast du noch nen Tip für mich.
Danke
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Die Doku beschreibt es so auf keinen Fall!
Was soll das denn? QMessageBox möchte einen QString, kein QByteArray mit Daten in irgend einer Kodierung.
Code: Alles auswählen
QMessageBox::information(0,"Anzeige",encodedString);
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Du hast Dich nicht korrekt informiert.Treo83 hat geschrieben: Was mache ich falsch?
Ein QString ist Unicode, ein QByteArray ein (mehr oder weniger) char* mit Text der in irgend einer Kodierung kodiert ist.
Von queryL.value(0).toString() bekommst Du einen QString - er ist also schon in Unicode. Falls da nur Müll drin steht ist entweder in der DB Müll oder die Kodierung der DB passt nicht (was ich nicht glaube da, soweit ich den Code vom oracle-sqlplugin lesen kann, die oracle-db - Funktionen Unicode reden).
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung