Как кодировать символ плюса (+) в URL-адресе

В приведенной ниже ссылке URL откроется новое окно электронной почты Google. Проблема заключается в том, что Google заменяет все плюсы (+) в элементе электронной почты пустым пространством. Похоже, это происходит только с знаком +. Любые предложения о том, как исправить это? (Я работаю на веб-странице ASP.NET)

https://mail.google.com/mail?view=cm&tf=0&[email protected]&su=some subject & body = Привет там + Привет.

(В электронной почте тела «Привет там + Привет там» появится как «Привет там Привет там»)

Символ + имеет особое значение в 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()); 

Результат

https://mail.google.com:443/mail?view=cm&tf=0&to=someemail%40somedomain.com&su=some+subject&body=Hi+there%2bHello+there

Вам нужен символ плюса (+) в теле, который вы должны кодировать как 2B.

Например: Попробуйте это

Безопаснее всегда кодировать проценты всех символов, кроме тех, которые определены как «безоговорочно» в RFC-3986.

unreserved = ALPHA / DIGIT / “-” / “.” / “_” / “~”

Итак, проценты кодируют символ плюса и другие специальные символы.

Проблема, которую вы испытываете с плюсами, связана с тем, что согласно RFC-1866 (спецификация HTML 2.0), пункт 8.2.1. подпункт 1. «Имена и значения полей формы сбрасываются: символы пробела заменяются на« + », а затем зарезервированные символы экранируются»). Этот способ кодирования данных формы также приведен в более поздних спецификациях HTML, ищите соответствующие абзацы о приложении / x-www-form-urlencoded.

  • Параметры запроса URL-адреса в Java
  • Кодировать / декодировать URL-адреса в C ++
  • URL-кодированная косая черта в URL-адресе
  • Как вы используете UrlEncode без использования System.Web?
  • Как заменить все пробелы на% 20 в C #?
  • Кодирование URL-адреса HTTP в Java
  • Как я могу кодировать строку в Excel в VBA?
  • URLEncoder не способен переводить символ пробела
  • Как кодировать значения параметров URI?
  • XHTML и & (Амперсанд) кодирование
  • Давайте будем гением компьютера.