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.
Mira Server.UrlEncode
@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