С# HTMLDecode без System.Web?

Я знаю, что существуют различные методы в пространстве имен System.Web для декодирования html-объектов (например, "%20" для пробела). Однако я создаю приложение Winforms, но мне нужно иметь дело с html-закодированными строками. В основном у меня есть XML файл iTunes Library и вам нужно расшифровать URL-адреса там, чтобы проверить файлы.

Возможно ли это без пространства имен System.Web?

+43
источник поделиться
7 ответов

Разработчики, которым необходимо использовать System.Web.HttpUtility в своих клиентских приложениях и должны были ссылаться на System.Web.dll и, следовательно, на целевые NET4 full (System.Web.dll в полном объеме), теперь можно настроить таргетинг на NET4 Client Профиль с помощью нового класса System.Net.WebUtility, который находится в System.dll(System.dll находится в профиле клиента NET4). System.Net.WebUtility включает HtmlEncode и HtmlDecode. Кодировка URL может быть выполнено с использованием класса System.Uri(также в System.dll).

Из http://blogs.msdn.com/b/jgoldb/archive/2010/04/12/what-s-new-in-net-framework-4-client-profile-rtm.aspx

+90
источник

Просто потому, что вы пишете приложение Windows Forms, это не мешает вам использовать System.Web. Просто добавьте ссылку на System.Web.dll.

+25
источник

Вы можете использовать System.Net.WebUtility.HtmlDecode:

Преобразует строку, которая была закодирована в HTML для передачи HTTP в декодированную строку.

+22
источник

Смотрите эту статью, если вам все еще интересно, как это сделать без System.Web. Он предлагает решение для декодирования URI (это действительно то, что вы декодируете, а не объекты HTML, которые похожи на "& emdash;" )

+7
источник

Чтобы использовать методы, которые находятся в платформе .NET, вы должны использовать пространство имен System.Web для получения метода HtmlDecode.

Да, вы могли бы написать свой собственный метод, чтобы сделать это, но это не будет иметь большого смысла.

Просто добавьте ссылку на system.web.

+1
источник

mybe это может помочь в winforms:

System.Uri.EscapeUriString(plainText);
0
источник

Вы можете использовать HttpUtility.UrlDecode или HttpUtility.HtmlDecode

-2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос