Am 23.06.12 00:19, schrieb Oliver Osswald:
Im RS Programm muss DefineEncoding und ConvertEncoding eingesetzt werden.
Die Encoding information geht meines Wissens auf dem Weg zwischen Client und
Server verloren. Du musst also sicher sein, dass es UTF8 ist, was Du
abschickst und in MySQL speicherst, damit Du sicher sein kannst was Du dort
abholst.

... nur so als Idee, weiss nicht ob das bei Dir zutrifft.

Das Problem tritt sowohl dann auf, wenn Daten per externen Programmen in UTF8 in der Datenbank gespeichert werden, als auch wenn man über RealStudio selbst Daten einspeichert. Als einfaches Beispiel habe ich die BLZ-Datei der Deutschen Bundesbank für einen Import verwendet: Das Encoding gesetzt (Datei ist im ISO-Latin1-Format), ausgelesen und in der Datenbank gespeichert. Sequel Pro zeigt die Umlaute korrekt an, RealStudio hingegen nur, wenn beim Auslesevorgang explizit das Encoding zum String gesetzt wurde:

rs.Field("Feldname").StringValue.DefineEncoding(Encodings.UTF8)

Gleiches Problem tritt aber auch auf, wenn man einen normalen Insert-Query von RealStudio aus mit Umlauten absetzt und danach die Daten wieder ausliest.

Bei anderen Datenbanksystemen bzw. Plugins gibt es im übrigen nicht derlei Probleme. cubeSQL beispielsweise funktioniert mit Umlauten sowohl beim Speichern als auch Laden der Daten einwandfrei, ohne zuvor irgendwelche Codierungsoptionen setzen zu müssen. Valentina und Postgresql werde ich in den nächsten Tagen einmal durchtesten.

--
Michael Kagerbauer
http://rbcoder.de

Antwort per Email an