Как кодировать символ плюса (+) в URL-адресе
В приведенной ниже ссылке URL откроется новое окно электронной почты Google. Проблема заключается в том, что Google заменяет все плюсы (+) в элементе электронной почты пустым пространством. Похоже, это происходит только с знаком +. Любые предложения о том, как исправить это? (Я работаю на веб-странице ASP.NET)
https://mail.google.com/mail?view=cm&tf=0&[email protected]&su=some subject & body = Привет там + Привет.
(В электронной почте тела «Привет там + Привет там» появится как «Привет там Привет там»)
- Каков правильный способ кодирования URL-символов Unicode?
- Server.UrlEncode против HttpUtility.UrlEncode
- Как сгенерировать URL-ссылки с привязкой к url с помощью AngularJS?
- Кодирование URL с использованием C #
- Как присвоить данные для команды curl?
- Когда закодировать пробел до плюс (+) или% 20?
- Кодировка URL-адресов Java для параметров строки запроса
- Должен ли я кодировать данные POST?
- На Android сделайте запрос POST с данными URL-кодированной формы без использования UrlEncodedFormEntity
- Почему я должен использовать urlencode?
- .net UrlEncode - проблема с нижним регистром
- В чем разница между EscapeUriString и EscapeDataString?
- Кодирование URL в Android
Символ +
имеет особое значение в url => это означает пробел. Если вы хотите использовать знак +
вам нужно закодировать URL-адрес:
body=Hi+there%2bHello+there
Вот пример того, как вы могли бы правильно генерировать URL-адреса в .NET:
var uriBuilder = new UriBuilder("https://mail.google.com/mail"); var values = HttpUtility.ParseQueryString(string.Empty); values["view"] = "cm"; values["tf"] = "0"; values["to"] = "[email protected]"; values["su"] = "some subject"; values["body"] = "Hi there+Hello there"; uriBuilder.Query = values.ToString(); Console.WriteLine(uriBuilder.ToString());
Результат
Вам нужен символ плюса (+) в теле, который вы должны кодировать как 2B.
Например: Попробуйте это
Безопаснее всегда кодировать проценты всех символов, кроме тех, которые определены как «безоговорочно» в RFC-3986.
unreserved = ALPHA / DIGIT / “-” / “.” / “_” / “~”
Итак, проценты кодируют символ плюса и другие специальные символы.
Проблема, которую вы испытываете с плюсами, связана с тем, что согласно RFC-1866 (спецификация HTML 2.0), пункт 8.2.1. подпункт 1. «Имена и значения полей формы сбрасываются: символы пробела заменяются на« + », а затем зарезервированные символы экранируются»). Этот способ кодирования данных формы также приведен в более поздних спецификациях HTML, ищите соответствующие абзацы о приложении / x-www-form-urlencoded.