decoding URLs

ladygamer

Client
Регистрация
04.03.2013
Сообщения
17
Благодарностей
2
Баллы
1
when i use the regex to pickup the URLs, they come like encoded..

example:
http%3a%2f%2fwww.yahoo.com%2frewads%2flevels&id=a2512126&hash=81793faf7b2c6b836254d7f6b1c5575b&state=Active&rcid=4&aid=urlreward&bruid=14547ABC-503B-4766-8F06-220F0C9E1E83&ml=MissionTaskLayout&nid=

and they are put on a list.. is there anyway to decode them so that i can navigate to the url?

any help would be great thanks
 
  • Спасибо
Реакции: vuong chi thanh

Hungry Bulldozer

Moderator
Регистрация
12.01.2011
Сообщения
3 441
Благодарностей
834
Баллы
113
You can do that with c# action by using System.Web.HttpServerUtility.UrlDecode() method
 

ladygamer

Client
Регистрация
04.03.2013
Сообщения
17
Благодарностей
2
Баллы
1
  • Спасибо
Реакции: vuong chi thanh

nevadahsot

Client
Регистрация
27.04.2012
Сообщения
106
Благодарностей
5
Баллы
18
Maybe this will help if encode decode large list.
 

Hungry Bulldozer

Moderator
Регистрация
12.01.2011
Сообщения
3 441
Благодарностей
834
Баллы
113

ladygamer

Client
Регистрация
04.03.2013
Сообщения
17
Благодарностей
2
Баллы
1
thank you so much :-)
 

xsalvador

Client
Регистрация
13.04.2012
Сообщения
2
Благодарностей
0
Баллы
0

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
Не работает пример.
Вот такая ошибка
"Имя типа или пространства имен "HttpUtility" отсутствует в пространстве имен "System.Web" (пропущена ссылка на сборку?)". [Строка: 1; Cтолбец: 19]
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
return Uri.UnescapeDataString("your encoded string");
 
  • Спасибо
Реакции: evgen2208

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
Если не сложно, подскажите как собрать все это вместе?
Нужен сниппет Decode и Encode - на входе может быть текст либо url
Сколько не кручу все одни ошибки..
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
а вы добавили в using System.Web ?
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
Как это сделать?
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
В References System.Web есть
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
а в директивах using?
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
версия 5.4.0.2 поэтому директив using нет
 

black_pariah

Client
Регистрация
08.09.2014
Сообщения
294
Благодарностей
91
Баллы
28
пропишите вручную вначале кода using System.Web;
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
Синтаксическая ошибка
 

black_pariah

Client
Регистрация
08.09.2014
Сообщения
294
Благодарностей
91
Баллы
28
тогда библиотека GAC
в ней добавить System.Web.dll
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43

black_pariah

Client
Регистрация
08.09.2014
Сообщения
294
Благодарностей
91
Баллы
28
QIP Shot - Screen 042.png
вот так у меня работает!
если вы взяли сборку из GAC то using.System.Web
прописывать не нужно
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
А у меня такое
"Имя типа или пространства имен "HttpUtility" отсутствует в пространстве имен "System.Web" (пропущена ссылка на сборку?)". [Строка: 1; Cтолбец: 19]

Сейчас переустановлю саму Zenno
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
C#:
string test_string = "Http://www.google.com/?adsf";
//string test_string2 = "Http%3A%2F%2Fwww.google.com%2F%3Fadsf";

if(Uri.IsWellFormedUriString("uri string", UriKind.RelativeOrAbsolute))
      return Uri.UnescapeDataString(test_string);
return Uri.EscapeDataString(test_string);
 
  • Спасибо
Реакции: GreenWay

black_pariah

Client
Регистрация
08.09.2014
Сообщения
294
Благодарностей
91
Баллы
28
А у меня такое
"Имя типа или пространства имен "HttpUtility" отсутствует в пространстве имен "System.Web" (пропущена ссылка на сборку?)". [Строка: 1; Cтолбец: 19]

Сейчас переустановлю саму Zenno
там есть две сборки System.Web 2.0.0.0 и 4.0.0.0,я выбирал 4.0.0.0,может это ,что то да значит?
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
C#:
string test_string = "Http://www.google.com/?adsf";
//string test_string2 = "Http%3A%2F%2Fwww.google.com%2F%3Fadsf";

if(Uri.IsWellFormedUriString("uri string", UriKind.RelativeOrAbsolute))
      return Uri.UnescapeDataString(test_string);
return Uri.EscapeDataString(test_string);
Спасибо Всем, и особенно LexxWork за оперативную помощь. Работает.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
вобще я бы советовал вам смотреть повнимательней на данные потому что бывает и смешаные енкоды например
Http://www.google.com/?adsf=Http://www.google.com/?adsf
и двойные
Http%253A%252F%252Fwww.google.com%252F%253Fadsf (два раза)
и поэтому лучше четко знать что вы собираетесь делать: кодить иле декодить
(зы: форум поламал первыую ссылку)

я там сделал меленькую ошибку
вот правильный код

string test_string = "Http://www.google.com/?adsf";
//string test_string2 = "Http%3A%2F%2Fwww.google.com%2F%3Fadsf";

if(Uri.IsWellFormedUriString(test_string, UriKind.RelativeOrAbsolute))
return Uri.UnescapeDataString(test_string);
return Uri.EscapeDataString(test_string);
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
Собираюсь делать и то и другое. Ваш совет учту.
Если в коде прописать так
Код:
string test_string = "Http%3A%2F%2Fwww.google.com%2F%3Fadsf";

//string test_string2 = "Http://www.google.com/?adsf";


if(Uri.IsWellFormedUriString("uri string", UriKind.RelativeOrAbsolute))

return Uri.EscapeDataString(test_string);

      return Uri.UnescapeDataString(test_string);
то получим декодер?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
return Uri.EscapeDataString(test_string); выдаст вам енкод
return Uri.UnescapeDataString(test_string); выдаст вам декод
if(Uri.IsWellFormedUriString(test_string, UriKind.RelativeOrAbsolute)) проверяет на правильную сенкодиность (сильно не тестил)
 
  • Спасибо
Реакции: Hannes и TeslaSoldier

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
Понял. Еще раз спасибо!
 

Кто просматривает тему: (Всего: 4, Пользователи: 0, Гости: 4)