(Delphi 7)
We hebben een koppeling met een extern systeem waarmee we middels een JSON message gegevens aanleveren. Deze wordt als normale string opgebouwd (dus als ansiChar). De gegevens - met name strings) komen uit een eigen database - waarin gegevens als ansichar (dus 1 byte / karakter) zijn vastgelegd.
Voor de connectie maak ik gebruik van WinInet functies; er wordt geen conversie naar Unicode of UTF-8 gedaan i het programma zelf; het kan zijn dat WinInet onder de motorkap zoiets doet, maar daar heb ik geen zicht op.
Dit gaat op zich goed - maar nu blijkt dat er toch 'onjuiste' karakters voorkomen en de ontvangende service kan daar niet mee overweg; gevraagd wordt om 'backslash-escaped unicode' - vraag me niet waarom geen UTF-8 (misschien bedoelen ze dat?? Die fout wordt wel vaker gemaakt. Hoe dan ook, het gaat om een Windows -> Windows omgeving, en beide zouden met unicode om moeten kunnen ); maar hoe krijg ik zoiets voor elkaar? Ik heb al wat gevonden om (ansi)string om te zetten naar UTF-8; als (ansi)string naar WideString wordt omgezet is er toch sprake van unicode. Maar hoe een en ander om te zetten naar het gevraagde formaat?
(De suggestie om een andere database te gebruiken (al dan niet 'off-the-shelf') ken ik, ook update naar een nieuwere Delphi versie. Geen van beide is aan de orde.)
Wie heeft er een suggestie?
Willem
Bookmarks