Если ваша цель состоит в том, чтобы избежать зависимости от System.Web.dll
, то вы обычно используете эквивалентный метод в WebUtility Class: WebUtility.UrlDecode Method.
Однако вы обнаружите, что даже тогда ваш URL-адрес не будет расшифровываться так, как вы этого хотите.
Это связано с тем, что WebUtility.UrlDecode
не обрабатывает обозначение выхода %uNNNN
нарочно. Обратите внимание на этот комментарий в source code:
// *** Source: alm/tfs_core/Framework/Common/UriUtility/HttpUtility.cs
// This specific code was copied from above ASP.NET codebase.
// Changes done - Removed the logic to handle %Uxxxx as it is not standards compliant.
Как указано в комментарии, формат %uNNNN
побег не совместим со стандартом и его следует избегать, если это возможно. Вы можете найти дополнительную информацию об этом и правильном способе кодирования URL-адресов от this thread.
Если у вас есть контроль над тем, как создается URL-адрес, подумайте об изменении его соответствия стандарту. В противном случае рассмотрите возможность добавления System.Web.dll
в качестве зависимости, найдите другую стороннюю библиотеку, которая выполняет задание, или напишите свой собственный декодер. Как уже отмечалось, source code есть.
Так что используйте код * from * HttpUtility; http://referencesource.microsoft.com/#System.Web/Util/HttpEncoder.cs,afac0d4e31f5382a –
Возможный дубликат [Альтернатива HttpUtility.ParseQueryString без зависимости System.Web?] (http://stackoverflow.com/questions/ 27442985/alternative-to-httputility-parsequerystring-without-system-web-зависимость) –