decoding URLs

  • Автор темы Автор темы ladygamer
  • Дата начала Дата начала

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
You can do that with c# action by using System.Web.HttpServerUtility.UrlDecode() method
 
Maybe this will help if encode decode large list.
641C72D7622A56FE130312_1_zpsbbbbedc5.png
 
Не работает пример.
Вот такая ошибка
"Имя типа или пространства имен "HttpUtility" отсутствует в пространстве имен "System.Web" (пропущена ссылка на сборку?)". [Строка: 1; Cтолбец: 19]
 
return Uri.UnescapeDataString("your encoded string");
 
  • Спасибо
Реакции: evgen2208
Если не сложно, подскажите как собрать все это вместе?
Нужен сниппет Decode и Encode - на входе может быть текст либо url
Сколько не кручу все одни ошибки..
 
а вы добавили в using System.Web ?
 
Как это сделать?
 
В References System.Web есть
 
а в директивах using?
 
версия 5.4.0.2 поэтому директив using нет
 
Синтаксическая ошибка
 
А у меня такое
"Имя типа или пространства имен "HttpUtility" отсутствует в пространстве имен "System.Web" (пропущена ссылка на сборку?)". [Строка: 1; Cтолбец: 19]

Сейчас переустановлю саму Zenno
 
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
А у меня такое
"Имя типа или пространства имен "HttpUtility" отсутствует в пространстве имен "System.Web" (пропущена ссылка на сборку?)". [Строка: 1; Cтолбец: 19]

Сейчас переустановлю саму Zenno
там есть две сборки System.Web 2.0.0.0 и 4.0.0.0,я выбирал 4.0.0.0,может это ,что то да значит?
 
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 за оперативную помощь. Работает.
 
вобще я бы советовал вам смотреть повнимательней на данные потому что бывает и смешаные енкоды например
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);
 
Собираюсь делать и то и другое. Ваш совет учту.
Если в коде прописать так
Код:
Развернуть Свернуть Копировать
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);
то получим декодер?
 
return Uri.EscapeDataString(test_string); выдаст вам енкод
return Uri.UnescapeDataString(test_string); выдаст вам декод
if(Uri.IsWellFormedUriString(test_string, UriKind.RelativeOrAbsolute)) проверяет на правильную сенкодиность (сильно не тестил)
 
  • Спасибо
Реакции: Hannes и TeslaSoldier
Понял. Еще раз спасибо!
 

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