Hallo,
ich habe folgendes Problem:
Beim Zugriff auf eine Firebird-Datenbank mit dem Zeichensatz ISO8859_1 wird das Eurozeichen mit Delphi-XE-Compilaten (XE2 ebenso) aus Textdatenfeldern nicht ausgelesen.
Das ist mit den Datenzugriffskomponenten IBX und UIB der Fall.
Ursache bei beiden ist die Verwendung der
API-Funktion MultiByteToWideChar mit Übergabe der Codepage 28591.
Diese Funktion konvertiert den Wert $80 nicht in den korrekten Wert #$20AC für das Eurozeichen im
Unicode sondern macht #$0080 daraus (mit einer Null als Parameter "Codepage" klappt es).
Mir stellt sich jetzt die Frage, wie man das Problem lösen kann
Die Datenbank auf
Unicode umstellen?
Die Datenzugriffskomponenten anpassen?
Oder kennt jemand eine einfachere Lösung?
Vorschläge àla "EUR" statt dem Eurozeichen helfen nicht, weil der Kunde nun mal das Eurozeichen in Notizen oder Bemerkungen oder dergleichen eintragen möchte.