Umlaute Windows + Oracle SQL

Alles rund um die Programmierung mit Qt
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Umlaute Windows + Oracle SQL

Beitrag von Christian81 »

Also entweder sind die Daten falsch in der Datenbank oder deine Umgebungsvariablen für die LOCALE-Einstellungen der DB sind falsch oder was auch immer - da solltest du mal einen Oracle-Experten fragen. Anbei ein Programm welches Dir die Daten konvertiert. Ob es auf einen Windows funktioniert welches nicht Deutsch als Sprache eingestellt hat, bezweifle ich da QString::toLocal8Bit() WideCharToMultiByte(CP_ACP, ...) benutzt.
Dateianhänge
main.cpp
(880 Bytes) 188-mal heruntergeladen
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
odt
Beiträge: 128
Registriert: 12. August 2010 11:49
Kontaktdaten:

Re: Umlaute Windows + Oracle SQL

Beitrag von odt »

Verwendest Du die Unicode-Version von OCI?
-> QString::fromUtf16 oder from fromWCharArray

Wenn qDebug funktioniert, QString::fromLocal8Bit

Try&Error: Ueber alle QTextCode::availableCodecs() loopen und den Text convertieren.
ODT Informatik GmbH, Reto Tschofenig
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

[Workaround] Re: Umlaute Windows + Oracle SQL

Beitrag von dazedly »

Vielen Dank für eure Hilfe und vielen Dank Christian für den Workaround!

Code: Alles auswählen

QString SqlQuery::valGetString(int col)
{
    return QTextCodec::codecForLocale()->toUnicode(QString::fromUtf8(OCI_GetString(this->result,col)).toLocal8Bit());
}
Es funktioniert jetzt. Jetzt habe ich nachdem alles fertig ist Zeit um eventuell das Problem anders zu lösen!
Antworten