Преобразование пробела в "+" с использованием C#
Я хочу преобразовать строку в URL-адрес, и вместо пробела ему нужен "+" между ключевыми словами.
Например:
"Hello I am"
чтобы:
"Hello+I+am"
Как мне это сделать?
7 ответов
String input = "Hello I am";
string output = input.Replace(" ", "+");
Для URL я настоятельно рекомендую использовать Server.UrlEncode (в ASP.NET) или Uri.EscapeUriString (везде) вместо String.Replace.
Ты можешь использовать string.Replace
:
"Hello I am".Replace(' ', '+');
Если вы хотите, чтобы URL кодировал строку (чтобы позаботились не только о пробелах), используйте Uri.EscapeUriString
:
Uri.EscapeUriString("Hello I am");
Из MSDN:
По умолчанию
EscapeUriString
Метод преобразует все символы, кроме RFC 2396 незарезервированных символов, в их шестнадцатеричное представление. Если разрешен синтаксический анализ международных идентификаторов ресурсов (IRI) или интернационализированных доменных имен (IDN), метод EscapeUriString преобразует все символы, кроме незарезервированных символов RFC 3986, в их шестнадцатеричное представление. Все символы Unicode преобразуются в формат UTF-8 перед экранированием.
Вы можете попробовать String.Replace
"Hello I am".Replace(' ','+');
Предполагая, что вы хотите заменить пробелы только плюсом, а не выполнять полную URL-кодировку, вы можете использовать встроенную Replace
метод:
string withSpaces = "Hello I am";
string withPluses = withSpaces.Replace(' ', '+');
Чтобы ответить на часть вашего вопроса "преобразовать строку в URL" (вам не следует преобразовывать строку вручную, если вы хотите правильный URL):
string url = "http://www.baseUrl.com/search?q=" + HttpUtility.UrlEncode("Hello I am");
Вы вызываете Url Encode для каждого параметра, чтобы правильно кодировать значения.