Dekodiert prozentcodierte Zeichenfolge c # .net

7

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.

    
John Spiegel 15.10.2012, 15:09
quelle

4 Antworten

17

Dies sollte die Aufgabe für Sie erledigen:

%Vor%     
Andrew Martin 15.10.2012, 15:13
quelle
8

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:

%Vor%

Daher scheint es, dass für eine bessere Abdeckung HttpUtility.UrlDecode die bessere Option ist.

    
Jon Egerton 15.10.2012 15:12
quelle
3

HttpServerUtility.UrlDecode ist was Sie wollen.

    
nothrow 15.10.2012 15:13
quelle
2
%Vor%

gibt

%Vor%

und ich erwarte, dass du das willst.

    
Albin Sunnanbo 15.10.2012 15:14
quelle

Tags und Links