&
является сущностью 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. Если вам необходимо включить какой-либо из этих символов, скажем, в параметр запроса, вам придется URL-кодировать параметр, чтобы не портить URL-адрес. Вот пример URL, где использовался экранирование URL:
http://www.someurl.com/profile.php?company=Barnes+%26+Noble
Название компании Barnes & Noble
было закодировано как Barnes+%26+Noble
. Если бы &
не был экранирован, URL содержал бы не один, а два параметра запроса, поскольку &
используется в качестве разделителя между параметрами запроса.