Мне тоже нужно было это сделать, я нашел этот вопрос несколько лет назад, но заголовок и текст вопроса не совсем совпадают, и использование Uri.EscapeDataString
или UrlEncode
(не используйте этот, пожалуйста!) обычно имеет смысл, если мы не говорим о передаче URL-адресов в качестве параметров другим URL-адресам.
(Например, передача URL-адреса обратного вызова при выполнении аутентификации с открытым идентификатором, Azure AD и т. Д.)
Надеюсь, что это более прагматичный ответ на вопрос: Я хочу превратить строку в URL с помощью C #, в платформе .NET должно быть что-то, что должно помочь, верно?
Да - две функции полезны для создания строк URL в C #
String.Format
для форматирования URL
Uri.EscapeDataString
для экранирования любых параметров в URL
Этот код
String.Format("https://site/app/?q={0}&redirectUrl={1}",
Uri.EscapeDataString("search for cats"),
Uri.EscapeDataString("https://mysite/myapp/?state=from idp"))
дает этот результат
https://site/app/?q=search%20for%20cats&redirectUrl=https%3A%2F%2Fmysite%2Fmyapp
Который можно безопасно скопировать и вставить в адресную строку браузера, или атрибут src
тега HTML A
, или использовать с curl
, или закодировать в QR-код и т. Д.