Urldecode

Vom Front-End bis SOAP.

Moderator: Moderatoren

Antworten
psp
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 242
Registriert: Do, 22. Okt 2009 13:42

Urldecode

Beitrag von psp » Do, 30. Jan 2020 8:44

Nun mal ne andere Frage gibt es in der version 2 von Xbase nen UrlDecode?
um nen Querystring wieder zurück zu wandeln

zb: /Handler?foo=M%C3%BCller zu foo=müller

habe in der Docu nix finden Können.

Benutzeravatar
andreas
Foren-Moderator
Foren-Moderator
Beiträge: 1820
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Kontaktdaten:

Re: Urldecode

Beitrag von andreas » Do, 30. Jan 2020 10:16

Das müsste eigentlich ganz normaler UTF-8-Wert sein.
Versuch es mit den UTF-8-Funktionen.
Gruß,

Andreas
VIP der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e. V.

psp
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 242
Registriert: Do, 22. Okt 2009 13:42

Re: Urldecode [gelöst]

Beitrag von psp » Do, 30. Jan 2020 10:52

Code: Alles auswählen


#include "dll.ch"

#include "OT4Xb.ch"

#define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000
#define URL_DONT_SIMPLIFY 0x08000000
#define URL_ESCAPE_PERCENT 0x00001000
#define URL_ESCAPE_SEGMENT_ONLY 0x00002000
#define URL_ESCAPE_SPACES_ONLY 0x04000000
#define URL_ESCAPE_UNSAFE 0x20000000
#define URL_INTERNAL_PATH 0x00800000
#define URL_PARTFLAG_KEEPSCHEME 0x00000001
#define URL_PLUGGABLE_PROTOCOL 0x40000000
#define URL_UNESCAPE 0x10000000
#define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000
#define URL_UNESCAPE_INPLACE 0x00100000

STATIC DLLFUNCTION UrlUnescapeA(@PWSTR, @pszUnescaped, @pcchUnescaped, dwFlags) USING STDCALL FROM Shlwapi.dll

func unescapeQuery(queryString)
  LOCAL nResSize := 4096
  Local cResQuery := Space(nResSize)

  UrlUnescapeA(@queryString, @cResQuery, @nResSize, URL_UNESCAPE)

  cResQuery := cUtf8ToOem(AllTrim(cResQuery))
  cResQuery := SubStr(cResQuery, 0, len(cResQuery) -1)

RETURN cResQuery


Antworten