2009-09-10 8 views

Antwort

15

Versuchen Sie folgendes:

string decodedUrl = HttpUtility.UrlDecode("my.aspx?val=%2Fxyz2F"); 
195
string decodedUrl = Uri.UnescapeDataString(url) 

oder

string decodedUrl = HttpUtility.UrlDecode(url) 

URL ist nicht vollständig mit einem Anruf decodiert. Um vollständig entschlüsseln Sie eine dieser Methoden in einer Schleife aufrufen können:

private static string DecodeUrlString(string url) { 
    string newUrl; 
    while ((newUrl = Uri.UnescapeDataString(url)) != url) 
     url = newUrl; 
    return newUrl; 
} 
+8

Uri.UnescapeDataString (url) danke – themis

+0

@ogi Danke dafür! Ich wusste nicht, dass es nicht mit nur einem Anruf funktioniert! Ich lief zweimal 'Uri.UnescapeDataString' und bekam, was ich wollte !! : D – C0NFUS3D

+3

Dies sollte definitiv eine akzeptierte Antwort sein. – Sevenate

3

Versuchen string s = System.Uri.UnescapeDataString(here);

-2

Als Arbeit um Lösung kann ich vorschlagen, eine Erweiterungsmethode zu erstellen, die Ihre URL in irgendwie wie diese entschlüsseln kann:

public static class DecodeString 
{ 
    public static string ToDecodeString(this string x) 
    { 
     if (x.Contains("%2B")) 
     { 
      x = x.Replace("%2B", "+"); 
     } 
     if (x.Contains("%2F")) 
     { 
      x = x.Replace("%2F", "/"); 
     } 
     if (x.Contains("%3D")) 
     { 
      x = x.Replace("%3D", "="); 
     } 
     return x; 

    } 
} 

Ich hoffe, es kann helfen!