Hallo,
ich habe ein Programm, das eine mysql-DB an eine QDataTable anbindet.
Mysql ist konfiguriert auf latin1, die Felder enthalten Umlaute äöü, via Konsole wird alles richtig angezeigt und gespeichert (select,update).
Im QT-Widget sieht man aber die Umlaute nicht, der Text wird entweder abgeschnitten oder nach Eingabe als ??? dargestellt und landet auch nicht im Datenbankfeld (Eingabe "Glück" --> Datenbankfeld = Gl)
Es ändert auch nichts, wenn man mysql mit "utf8" in my.cnf konfiguriert oder locale auf utf8 stellt. KDE spielt auch keine Rolle, habe das Programm nur gegen QT gelinkt und unter X alleine laufen lassen.
Ich müsste jeden String mit fromutf8() umwandeln, was aber im ganzen Programm eine Riesenarbeit wäre.
Weiss jemand weiter?
(Linux 2.6.16, locale de_DE, QT 3.3.6, mysql 4.1.20)
Merci
Garfield
Problem mit QT / mysql und Zeichensatz
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Problem mit QT / mysql und Zeichensatz (gelöst)
Hallo,
der Tip mit qt-interest war hilfreich.
Die Lösung ist:
1) mysql in my.cnf überall auf latin1 konfigurieren
2) normale Daten in Latin1-Codierung importieren
3) In QT-Programmen am Programmstart folgendes setzen:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
Ja, doch utf8! Dann klappt's mit den Umlauten in Data-Widgets!
Grüsse
Garfield
der Tip mit qt-interest war hilfreich.
Die Lösung ist:
1) mysql in my.cnf überall auf latin1 konfigurieren
2) normale Daten in Latin1-Codierung importieren
3) In QT-Programmen am Programmstart folgendes setzen:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
Ja, doch utf8! Dann klappt's mit den Umlauten in Data-Widgets!
Grüsse
Garfield