Seite 1 von 1

Qt und mysql DB mit utf8/Big5 Zeichensatz

Verfasst: 4. Januar 2005 12:12
von Mike Glas
Kann mir jemand Helfen.

Ausgangslage: Habe ein kleines Testprogramm geschrieben (mit QT3). Dieses greift über ODBC 3.51.10 Driver auf eine mysql DB zu (mysql=4.1.7).Gebe chinesische Zeichen ein in die db oder in das Programm. Leider werden diese nach einem refresh auf dem GUI nur mit ???? dargestellt. Obschon sich diese in der DB befinden (Wenn ein Select absetze über den mysql querybrowser so ist die Anzeige OK) Habe zum Test anstelle der mysql DB eine MS ACCESS db verwendet. Greife auch über ODBC zu. Mit der ACCESS db funktioniert dies.

Habe dann auch den nativen Treiber QMYSQL3 probiert, leider ist bei diesem das gleiche Problem wie beim ODBC Treiber.

Laut dem mysql Forum ist der ODBC Treiber nicht in der Lage utf8 zurückzugeben. Wie sieht es mit dem nativen Treiber QMYSQL3 aus?

Bei einem Mix von deutschen Zeichen mit chinesischen Zeichen in dem selben Feld werden nur die deutschen Zeichen korrekt dargestellt. (Mit dem mysql querybrowser ist die Anzeige OK)

Im übrigen funktioniert die Anzeige mir dem mysql Control Center das mit Qt erstellt wurde (Treiber QMYSQLxx) auch nicht!

Nun meine Frage:
Hat jemand es fertig gebracht mit Qt3 +mysql db mit odbc oder nativ chinesische Zeichen darzustellen?

Verfasst: 4. Januar 2005 19:51
von FlorianBecker
Nein

Verfasst: 6. Januar 2005 08:32
von Mike Glas
Habe die Anzeige über den ODBC Treiber geschafft.
Leider nur die Anzeige.
Bei Insert und Update wird entweder nichts in die DB geschrieben oder nur ???.

Wie gesagt funktioniert alles über den ODBC Treiber mit MSAccess. Mit dem mysql ODBC Treiber funktioniert die Anzeige nur mit dem zusätzlichen Code:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8");

Über den nativen Treiber für mysql (QMYSQL3) habe ich auch die Anzeige nicht geschafft.