2011-06-29 8 views
7

Duplicar posibles:
How can I decode HTML characters in C#?Unescape una url escapado en C#

tengo las direcciones URL que se escaparon en esta forma:

http://www.someurl.com/profile.php?mode=register&agreed=true 

que quiero convertirlo en formulario sin guardar

http://www.someurl.com/profile.php?mode=register&agreed=true 

¿Es esto lo mismo que escapó html?

¿cómo hago esto?

gracias

+1

La codificación URL es completamente diferente de la codificación HTML, ya que está marcada como duplicada. Marcado para reabrir – Deestan

Respuesta

9

& es una entidad HTML y se utiliza cuando el texto se codifica en HTML porque hay que "escapar" del & que tiene un significado especial en HTML. Aparentemente, este mecanismo de escape se usó en la URL presumiblemente porque se usa en algunos HTML, por ejemplo, en un enlace. No estoy seguro de por qué quieres decodificarlo porque el navegador hará la descodificación adecuada cuando se haga clic en el enlace. Pero de todos modos, para revertir lo puede utilizar en el HttpUtility.HtmlDecodeSystem.Web espacio de nombres:

var encoded = "http://www.someurl.com/profile.php?mode=register&agreed=true"; 
var decoded = HttpUtility.HtmlDecode(encoded); 

El valor de decoded es:

http://www.someurl.com/profile.php?mode=register&agreed=true 

Otra forma de codificación/decodificación utilizado es la codificación URL. Esto se usa para poder incluir caracteres especiales en partes de la URL. Por ejemplo, los caracteres /, ? y & tienen un significado especial en una URL. Si necesita incluir alguno de estos caracteres en un parámetro de búsqueda, por ejemplo, deberá codificar el parámetro URL para no dañar la URL. Aquí está un ejemplo de una URL en la que el escape de URL se ha utilizado:

http://www.someurl.com/profile.php?company=Barnes+%26+Noble 

La compañía Nombre Barnes & Noble se codifica como Barnes+%26+Noble. Si no se hubiera escapado el &, la URL no habría contenido uno sino dos parámetros de consulta porque & se usa como un delimitador entre los parámetros de consulta.

+0

esta es una aplicación de winforms. ¿Funcionará en .net 2.0? Estoy recibiendo un error 'HttpUtility 'no está declarado' – Smith

+0

@Smith: Aquí está la documentación para la clase .NET 2.0' HttpUtility': http://msdn.microsoft.com/en-us/library/1e55w41w(v=VS .80) .aspx. ¿Recordó agregar una referencia a 'System.Web.dll'? –