without namespace httputility c# url encoding

c# - namespace - ¿Cómo reemplazo caracteres especiales en una URL?



urldecode c# (4)

Esto es probablemente muy simple, pero simplemente no puedo encontrar la respuesta yo mismo :(

Básicamente, lo que quiero es, dada esta cadena:

" http://www.google.com/search?hl=en&q=c# objects"

Quiero esta salida:

http://www.google.com/search?hl=es&q=c%23+objetos

Estoy seguro de que hay alguna clase de ayuda en algún lugar enterrado en el Framework que se encarga de eso, pero estoy teniendo problemas para encontrarlo.

EDITAR: debería agregar, que esto es para una aplicación de Winforms.



@Wilfred Knievel tiene la respuesta aceptada, pero también podría usar Uri.EscapeUriString() si desea evitar la dependencia en el espacio de nombres System.Web .


HttpServerUtility.UrlEncode (cadena)

Debe resolver cualquier personaje problemático

Para usarlo, deberá agregar una referencia a System.Web (Explorador de proyectos> Referencias> Agregar referencia> Sistema.Web)

Una vez que haya hecho eso, puede usarlo para codificar cualquier elemento que desee agregar a la cadena de consulta:

System.Web.HttpUtility.UrlEncode("c# objects");


Si no desea una dependencia en System.Web, aquí hay una implementación de "UrlEncode" que tengo en mi Biblioteca C # OAuth (que requiere una implementación correcta, es decir, los espacios deben codificarse usando codificación porcentual en lugar de "+" para espacios, etc. .)

private readonly static string reservedCharacters = "!*''();:@&=+$,/?%#[]"; public static string UrlEncode(string value) { if (String.IsNullOrEmpty(value)) return String.Empty; var sb = new StringBuilder(); foreach (char @char in value) { if (reservedCharacters.IndexOf(@char) == -1) sb.Append(@char); else sb.AppendFormat("%{0:X2}", (int)@char); } return sb.ToString(); }

Para referencia http://en.wikipedia.org/wiki/Percent-encoding