Замена спецсимволов в URL

codeby

Client
Регистрация
25.08.2014
Сообщения
394
Благодарностей
53
Баллы
28
Здравствуйте,

Кто подскажет как выйти из ситуации

Беру из текста URL со спецсимволами.

Выглядит это примерно так:

Код:
viewforum.php?f=574&start=950
Естественно браузер "ложит" на все эти спецсимволы из кода. Ему нормальные подавай.

Вопрос в том, как эффективнее всего делать преобразование.

Заменой части строки делать не совсем удобно. Может кто подскажет более простое решение?
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
Ищите по форуму urlencode
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
C#:
var url = project.Variables["url"].Value;
var data = System.Web.HttpUtility.UrlEncode(url);
return data;
 

codeby

Client
Регистрация
25.08.2014
Сообщения
394
Благодарностей
53
Баллы
28
Спасибо
 

Severip

Client
Регистрация
17.10.2013
Сообщения
346
Благодарностей
98
Баллы
28
Кто знает, как обратно через снипет декодировать URL?

Есть tass.ru%2Fekonomika%2F1630800
а надо получить: tass.ru/ekonomika/1630800
просто замена не катит, урлы могут и другие символы содержать.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
То же что и на примере выше, только UrlDecode
 
  • Спасибо
Реакции: Severip

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 657
Благодарностей
656
Баллы
113
Обычно я заменой & на & делаю или обрезать до..Еще можно пихать ссыль в http://2cyr.com/decode подобный сервис и брать результат.
 

Severip

Client
Регистрация
17.10.2013
Сообщения
346
Благодарностей
98
Баллы
28
Спасибо!
 

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
Я вставляю код в C#:
var url = project.Variables["my_link"].Value;
var data = System.Web.HttpUtility.UrlDecode(my_link);
return data;

И после этого в данном шаблоне ни один экшен не работает.
Как только удаляю экшен "Свой код" с вот этим кодом на С# - все сразу начинает работать.

Подскажите, пожалуйста, в чем может быть причина?
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 311
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

var data = System.Web.HttpUtility.UrlDecode(url);
 
  • Спасибо
Реакции: Danny

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
Вопрос решился - нашел в англоязычной ветке ответ.
Вот такой код работает:

return System.Web.HttpUtility.UrlDecode(project.Variables["my_link"].Value);

--------------------
Написал вот так:
using System.Web;

var url = project.Variables["proof_link"].Value;
var data = System.Web.HttpUtility.UrlDecode(url);
return data;

Добавил using System.Web; т.к. до этого выдавалась ошибка, что нет System.Web

Но теперь все равно ошибка:
"Syntax error, '(' expected". [Строка: 1; Cтолбец: 7]
") expected". [Строка: 1; Cтолбец: 17]

И снова ни один экшен не работает.


Нашел, что нужно добавить вот это:
http://i.gyazo.com/ae11462a82238afaba38d4ffd530955f.png

Но все равно не помогло - не работает.
 
Последнее редактирование:

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
это все что вам нужно
return Uri.UnescapeDataString(project.Variables["my_link"].Value);
 
  • Спасибо
Реакции: codeby, ferr9918 и Danny

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
Да, я это и имел в виду.
Дописал в начало поста последнего - на случай, если кому-то пригодится )
 

seodima

Client
Регистрация
21.09.2014
Сообщения
199
Благодарностей
60
Баллы
28
Не понимаю - зачем писать неправильные ответы? И так в каждой теме. 10 ответов, которые просто не работают и 1 рабочий.
Я понимаю, что это форум и никто никому ничего не должен. Но зачем писать неверные ответы? Неужели не проще просто пройти мимо?
LexxWork, спасибо за рабочее решение.
 

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