Как кодировать URL в WinForms? - PullRequest
20 голосов
/ 21 мая 2011

Я создаю приложение для Windows, и мне нужно передать закодированный URL. Но я не уверен, как это закодировать в WinForms C #?

Ответы [ 3 ]

36 голосов
/ 21 мая 2011

Если вам нужно кодировать данные URL для строки запроса, вы можете использовать либо Uri.EscapeDataString , либо, если не возражаете, ссылки на System.Web, HttpUtility.UrlEncode :

var rawString = @"this & that";
var uriEncoded = Uri.EscapeDataString(rawString);
var httpUtilityEncoded = HttpUtility.UrlEncode(rawString);

Они очень похожи, но могут давать слегка отличающиеся результаты при кодировании специальных символов, например пробелов:

Console.WriteLine(uriEncoded);
// uriEncoded = "this%20%26%20that"

Console.WriteLine(httpUtilityEncoded);
// httpUtilityEncoded = "this+%26+that"
5 голосов
/ 21 мая 2011

Попробуйте Uri.EscapeUriString ()

4 голосов
/ 15 сентября 2017

Вы пробовали с:

var url = System.Net.WebUtility.UrlEncode(string);

Вам не нужна зависимость от System.Web, и вы можете использовать ее в PCL, я использовал ее в своем проекте форм Xamarin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...