@ogi Obrigado por isso! Eu não sabia que não funcionava totalmente com apenas uma ligação! Corri Uri.UnescapeDataStringduas vezes e consegui o que queria !! : D
C0NFUS3D 31/12/13
2
IMHO melhor do que a resposta accpeted porque a sua primeira sugestão também trabalha em portáteis Classe libaries (PCLs)
Daniel Veihelmann
2
melhor resposta! mas considere como seus parâmetros são aninhados antes de decodificar completamente. por exemplo, um valor de parâmetro pode ser um URL codificado que possui um parâmetro com outro URL codificado. Se você o decodificar completamente de uma só vez, não poderá mais dizer o que era o que era. seria como tirar todos os parênteses de uma declaração de álgebra. a = ((b + c) * d) se você unescape-lo totalmente, o significado de componentes podem ser perdidos a = b + c * d
Dano
2
O UnescapeDataString não é suficiente, pois não trata de vários casos (por exemplo, parâmetros em uma URL que contém um espaço usando '+', mas o UnescapeDataString intencionalmente não os converte em espaços). Alças Uri mais do que apenas URL, como a questão está pedindo cerca de URL que deve usar HttpUtility.UrlDecode
System.Web.HttpServerUtilityBase
, mas isso já deve ser importado no ASP.NET MVC.ou
O URL não é totalmente decodificado com uma chamada. Para decodificar completamente, você pode chamar um destes métodos em um loop:
fonte
Uri.UnescapeDataString
duas vezes e consegui o que queria !! : DVocê já tentou
HttpServerUtility.UrlDecode
ouHttpUtility.UrlDecode
?fonte
HttpServerUtility.UrlDecode
que é um método de instância, deve-se usarHttpContext.Current.Server.UrlDecode
.Tente o seguinte:
fonte
Experimentar:
fonte