Unescape экранированный url в c#
У меня есть URL-адреса, которые экранируются в следующем виде:
http://www.someurl.com/profile.php?mode=register&agreed=true
Я хочу, чтобы преобразовать его экранируется
http://www.someurl.com/profile.php?mode=register&agreed=true
Это то же самое, что и escapped html?
Как мне это сделать?
Спасибо
1 ответ:
&является HTML-сущностью и используется, когда текст кодируется в HTML, потому что вы должны "экранировать"&, который имеет особое значение в HTML. По-видимому, этот механизм экранирования был использован на URL-адресе предположительно потому, что он используется в некотором HTML, например, в ссылке. Я не уверен, почему вы хотите декодировать его, потому что браузер будет делать правильное декодирование, когда ссылка нажата. Но в любом случае, чтобы вернуть его, вы можете использоватьHttpUtility.HtmlDecodeв пространстве именSystem.Web:var encoded = "http://www.someurl.com/profile.php?mode=register&agreed=true"; var decoded = HttpUtility.HtmlDecode(encoded);Значение
decodedэто:http://www.someurl.com/profile.php?mode=register&agreed=trueДругой формой кодирования / декодирования является кодирование URL. Это используется, чтобы иметь возможность включать специальные символы в части URL. Например, персонажи
/,?и&имеют особое значение в URL. Если вам нужно включить любой из этих символов в параметр say a query, вам придется кодировать URL-адрес, чтобы не испортить URL-адрес. Вот пример URL, где был использован экранирование URL:http://www.someurl.com/profile.php?company=Barnes+%26+NobleНазвание компании
Barnes & Nobleбыло закодировано какBarnes+%26+Noble. Если бы&не был экранирован, URL содержал бы не один, а два параметра запроса, поскольку&используется в качестве разделителя между параметрами запроса.