Wie dekodiere ich eine Zeichenfolge wie die folgende:
name1 = ABC & amp; userId = DEF & amp; name2 = zyx & amp; Payload =% 3cSTAT + xmlns% 3axsi% 3d% 22http% 3a% 2f% 2www.w3.org% 2f2001% 2fXMLSchema-instanz% 22% 3e% 3cREQ. ..
Hintergrund: Ich akzeptiere einen HTTP-POST (im Grunde Name-Name-Paare) und wandle das Byte-Array dann in String um:
%Vor%Ich habe versucht, die HtmlDecode-Methode von WebUtility und HttpUtility aber die gleiche Zeichenfolge zurück zu bekommen.
Hast du HttpUtility.UrlDecode
versucht?
Siehe hier .
Beachten Sie, dass diese Funktion nicht ganz dasselbe wie HttpUtility.HtmlDecode
tut.
Bearbeiten: Als Antwort auf die Frage nach Unterschieden zwischen UrlDecode
und UnescapeDataString
:
Um die MSDN-Seite für UnescapeDataString
:
Viele Webbrowser entkommen Leerzeichen innerhalb von URIs in Pluszeichen ("+"); Die UnescapeDataString-Methode konvertiert jedoch keine Pluszeichen in Leerzeichen, da dieses Verhalten in allen URI-Schemata nicht standardmäßig ist.
UrlDecode
behandelt diese jedoch, Sie erhalten verschiedene Antworten, wenn Sie Folgendes versuchen:
Daher scheint es, dass für eine bessere Abdeckung HttpUtility.UrlDecode die bessere Option ist.