2009-09-10 4 views

risposta

15

Prova questo:

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

o

string decodedUrl = HttpUtility.UrlDecode(url) 

URL non è completamente decodificato con una sola chiamata. Per decodificare completamente è possibile chiamare uno di questi metodi in un ciclo:

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

Uri.UnescapeDataString (url) thanx – themis

+0

@ogi Grazie per quello! Non sapevo che non funzionasse completamente con una sola chiamata! Ho eseguito 'Uri.UnescapeDataString' due volte e ho ottenuto quello che volevo !! : D – C0NFUS3D

+3

Questo sicuramente dovrebbe essere una risposta accettata. – Sevenate

3

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

-2

Come un lavoro intorno soluzione che posso suggerire di creare un metodo di estensione in grado di decodificare l'URL in qualche modo simile a questo:

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; 

    } 
} 

Spero che possa essere d'aiuto!