Entwickler-Ecke

Datenbanken - Unicode-Zeichen ŝ mit MySQLdirect


Yogu - Mo 25.05.09 12:01
Titel: Unicode-Zeichen ŝ mit MySQLdirect
Hallo,

ich programmiere einen Vokabeltrainer, der auch Esperanto trainieren kann. Dort gibt es auch Zeichen wie ĉĝĥĵŝŭ. Die Datenbank kann die Zeichen speichern, mit phpMyAdmin und dem Firefox klappt alles ohne Probleme.

Im Programm verwende ich TntEdits und einen VirtualStringTree zur Anzeige. Als Datenspeicher werden WideStrings eingesetzt. An einer Stelle hakt es jedoch: Bei der Verbindung zum MySQL-Server werden nämlich nur normale Strings eingesetzt. Die können zwar Umlaute, französische Akzente (à, é usw.) und das spanische ñ speichern, nicht aber ĝ, ŝ usw. Ich kann aber auch nicht die ganzen MySQLdirect-Komponenten umkrempeln.

Kennt ihr eine (kostenlose!) Komponente, die mit allen Unicode-Zeichen umgehen kann?

Die Alternative wäre, Unicode-Strings vor dem Übertragen zu escapen. Ist das mit MySQL irgendwie möglich? Ich habe einen Artikel gefunden, der beschreibt, wie man aus ä ein ä macht (http://www.uni-erfurt.de/computerhilfe/typo3/admins/coders/mysql/unicode/), aber bei mir wird ja aus dem ĉ einfach ein c, da ist nichts mehr herauszuholen.

Danke für eure Mühe!

Grüße,
Yogu


Yogu - Mi 27.05.09 23:18

Hallo,

ich hab jetzt eine unschöne Überganslösung gefunden: Mit UTF8EncodeString mache ich aus Sonderzeichen zwei codierte Zeichen, die ich mit UTFDecodeString wieder auseinander nehme. Allerdings stehen in der Datenbank jetzt ziemlich komische Zeichenkombinationen drin, die zum Beispiel bei Abfragen über PHP zu Problemen führen können (Die Abfrage übers Internet mit PHP ist durchaus denkbar bei meinem Vokabeltrainer!).

Ich suche also immer noch nach einer Möglichkeit, den encodierten String in MySQL wieder zu normalem Unicode werden zu lassen. Danke schonmal für eure Mühe!

Grüße,
Yogu