Come posso decodificare un parametro URL codificato utilizzando C#?Come si decodifica un parametro URL utilizzando C#?
Per esempio, prendete questo URL:
my.aspx?val=%2Fxyz2F
Come posso decodificare un parametro URL codificato utilizzando C#?Come si decodifica un parametro URL utilizzando C#?
Per esempio, prendete questo URL:
my.aspx?val=%2Fxyz2F
Server.UrlDecode(xxxxxxxx)
Hai provato HttpServerUtility.UrlDecode
o HttpUtility.UrlDecode
?
Per accedere a 'HttpServerUtility.UrlDecode' che è un metodo di istanza si dovrebbe usare' HttpContext.Current.Server.UrlDecode'. – BornToCode
Prova questo:
string decodedUrl = HttpUtility.UrlDecode("my.aspx?val=%2Fxyz2F");
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;
}
Uri.UnescapeDataString (url) thanx – themis
@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
Questo sicuramente dovrebbe essere una risposta accettata. – Sevenate
Prova string s = System.Uri.UnescapeDataString(here);
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!
quale spazio dei nomi? – PolinaC