Principales respuestas
Replace en C# no me funciona para espacios en blanco

Pregunta
-
Tengo un problema, para acceder a una página web los espacios en blanco se sustiyen por %20, yo estoy tratando de acceder a la información del gamertag por medio de un programa. Si el gamertag tiene espacio, utilizo la funcion Replace pero no me sustituye los espacios en blanco
// Obtenemos el gamertag del textbox string gamertag = txtGamertag.Text; gamertag.Replace(" ", "%20"); // Esto no lo sustitye // Se establece la url para entrar a la web que tiene los datos del gamertag string url = "http://........................./?apikey=" +apikey + "&gamertag=" + gamertag;
¿Hay alguna otra forma de reemplazar los espacios en blanco por %20?
Estoy usando Visual Studio 2010 y el framwork 4.0
Respuestas
-
Los strings son INMUTABLES. Es decir, Replace no modifica el string llamado gamertag, sino que devuelve uno nuevo con los cambios. Deberias hacer:
gamertag = gamertag.Replace(...);
Y deberia funcionar.
Vicente Cartas Espinel - MVP XNA/DirectX- Marcado como respuesta Gidrek89 domingo, 15 de mayo de 2011 14:26
Todas las respuestas
-
Hola Gidrek,
Prueba con el método URLEncode http://msdn.microsoft.com/es-es/library/4fkewx0t(v=VS.80).aspx
Javier Torrecilla
Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
Si la respuesta te ha sido util Votala.
Mi Blog: Jtorrecilla
Enlace a Faq de Winforms en Ingles Muy bueno -
Los strings son INMUTABLES. Es decir, Replace no modifica el string llamado gamertag, sino que devuelve uno nuevo con los cambios. Deberias hacer:
gamertag = gamertag.Replace(...);
Y deberia funcionar.
Vicente Cartas Espinel - MVP XNA/DirectX- Marcado como respuesta Gidrek89 domingo, 15 de mayo de 2011 14:26
-
Los strings son INMUTABLES. Es decir, Replace no modifica el string llamado gamertag, sino que devuelve uno nuevo con los cambios. Deberias hacer:
gamertag = gamertag.Replace(...);
Y deberia funcionar.
Vicente Cartas Espinel - MVP XNA/DirectXGracias, me funcionó perfectamente.
Saludos
-
hola Gidrek
mas alla que el Replace() funcione, analiza lo comentado por jtorrecilla, porque deberias usar un UrtlEncode para ahcer esto que estas planteando
ya que al reempzlar los espacios por %20, no lo haces del resto de los caracteres especiales que se podrian encontrar en la url
lo seguro es aplicar el UrlEncode()
deberias ser algo como
string url =HttpUtility.UrlEncode(string.format("http://........................./?apikey={0}&gamertag={1}", apikey, gamertag));
con esto unes y aplcias el encode a la url
si es una aplciacion winforms recuerda agregar la referencia a System.Web
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -