Преобразование пространства в «+» с использованием c#
-
10-10-2019 - |
Вопрос
Я хочу преобразовать строку в URL, а вместо пространства ей нужен «+» между ключевыми словами.
Например:
"Hello I am"
к:
"Hello+I+am"
Как мне это сделать?
Решение
String input = "Hello I am";
string output = input.Replace(" ", "+");
Другие советы
Для URL -адресов я настоятельно рекомендую использовать Server.urlencode (в asp.net) или Uri.escapeuristring (везде) вместо строки.
можешь попробовать String.replace
"Hello I am".Replace(' ','+');
Вы можете использовать string.Replace
:
"Hello I am".Replace(' ', '+');
Если вы хотите URL кодировать строку (так что позаботятся не только пространства), используйте Uri.EscapeUriString
:
Uri.EscapeUriString("Hello I am");
От MSDN:
По умолчанию
EscapeUriString
Метод преобразует все символы, кроме RFC 2396 безоговорочных символов, в их шестнадцатеричное представление. Если включено анализ международных ресурсов (IRIS) или интернационализированного доменного имени (IDN), метод Escapeuristring преобразует все символы, за исключением RFC 3986 незаслуженных символов, в их шестнадцатеричное представление. Все символы Unicode преобразуются в формат UTF-8, прежде чем сбежать.
Предполагая, что вы хотите заменить пространства только на плюсы, и не выполнять полное кодирование URL, тогда вы можете использовать встроенный Replace
Метод:
string withSpaces = "Hello I am";
string withPluses = withSpaces.Replace(' ', '+');
string s = "Hello I am";
s = s.Replace(" ", "+");
Чтобы ответить на «преобразовать строку в URL» часть вашего вопроса (вы не должны вручную конвертировать строку, если вы хотите правильный URL):
string url = "http://www.baseUrl.com/search?q=" + HttpUtility.UrlEncode("Hello I am");
Вы вызываете URL -кодирование на каждом параметре, чтобы правильно кодировать значения.