Olá Caro(a) Leitor(a), hoje eu vou dar continuidade no assunto chamado URLEncode e URLDecode. Muita gente pensa que esses métodos não são utilizados mas estão enganados. Quem usa os dois métodos? Geralmente o desenvolvedor que quer esconder alguma coisa ou então não quer ter problema com os parâmetros vindos do browser.
 
Vamos dizer que é uma das melhores maneiras de trabalhar com URL sem ter problema. Lembro a você sobre um artigo criado por mim para criptografar os dados na URL do browser (http://www.ecode10.com/artigo/684/Criptografando-URL). 
 
Foi publicado também outro artigo falando sobre URLEncode, veja no link http://www.ecode10.com/artigo/1943/urlencode, o primeiro passo é codificar a URL para depois decodificar e conseguir pegar os parâmetros necessários.
 
No artigo anterior, um valor foi informado para fazer o encode e depois é necessário pegar os valores de forma correta, ou seja, retirar a codificação. Eu já vi muito desenvolvedor trabalhar com URLEncode para esconder algum tipo de parâmetro ou endereço do usuário. O usuário não precisa entender qual URL ele está fazendo download de um arquivo ou qualquer outra informação.
 
Basta navegar pouco na Internet para ver algumas URLs com interrogação, barras, espaços e as vezes até caracteres especiais ou com acento. E a qualquer momento o site pode adquirir esse tipo de parâmetro ou url e para tratar isso é melhor codificar e decodificar o que recebe e o que envia.
 
Alguns casos, o browser pode não entender o que está sendo passado ou recebido e isso prejudica o site porque a página não irá abrir. Se a página não abre, o usuário pode querer nunca mais voltar ou deixar de confiar no site.
 
Utilizado:
Linguagem C#
Ferramenta Visual Studio
Tecnologia Web ASP.NET
 
O método responsável pela decodificação de uma cadeia de caracteres é UrlDecode que está dentro do HttpUtility. Mas você pode chamar o mesmo método através do HttpServerUtility com o Server.UrlDecode ou através do HttpContext.
 
Se você não está desenvolvendo para Web, você pode utilizar a classe WebUtility para codificar e decodificar essa cadeira de caracteres que receber através de um browser ou comandos para chamar o browser.
 
Depois de criar um projeto novo, criei um exemplo para trabalhar com url. A figura 1 mostra como foi passado o parâmetro e como foi exibido na tela, tanto pelo browser e dentro do site. 
 
Figura 1 - Foco no browser.
 

 

A figura 1 mostra como foi passado os dados pelo browser. Existe um parâmetro chamado URL e o valor passado é outra url com interrogação, barra, sinal de igual e outros valores. Depois de pegar os valores, o sistema precisou transformar tudo de forma clara para o site.
 
Para não ficar verificando caracter por caracter, basta usar o URLDecode; isto é; basta usar uma linha de código para retornar o resultado mostrado na figura 1.
 
O code 1 mostra como o valor foi pego e como foi entendido pelo código. Basta receber o valor pelo Request, armazenar em uma variável e utilizar o decode. Como nesse caso é apenas um exemplo simples para entendimento, só mostrei o resultado dentro de um label, mas o ideia é mandar para uma navegador ou para um componente que utiliza o endereço correto de URL.
 
Code 1 - Pegar valores passados
 
Outro passo é redirecionar para a URL usando o método Response.Redirect. Veja o code 2. 
 
Code 2 - Redirecionando a URL
 

 

Bom, espero que tenham gostado e que sua dúvida tenha sido resolvida. Qualquer dúvida, favor entrar em contato pelo site www.mauriciojunior.org