Request.getParameter неправильно декодирует строку - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть URL со следующей строкой запроса

equipmentAccessoryRoute=LFVR+BASICACC

Когда я делаю request.getParameter("equipmentAccessoryRoute"), он возвращает 'LFVR BASICA CC' в строковой переменной, заменяя знак плюс пробелом.

Чтобы решить эту проблему, я сделал что-то вроде этого

String accessoryRoute = java.net.URLEncoder.encode(request.getParameter("equipmentAccessoryRoute"),"UTF-8");

Это работало отлично, но теперь yt не работает для следующей строки запроса (которая работала раньше)

`equipmentAccessoryRoute=C1000IP5EL@-A`

Декодирование преобразует это в 'C1000IP5EL% 40-A' и сохраняет в строку.

Я действительно запутался. Я пытался изучить кодировку URL, но мне было очень трудно это понять.

1 Ответ

0 голосов
/ 04 февраля 2020

URL - Унифицированный указатель ресурса

  • URL-адреса могут отправляться только через Inte rnet с использованием набора символов ASCII. Поскольку URL-адреса часто содержат символы вне набора ASCII, URL-адрес необходимо преобразовать в действительный формат ASCII.
  • Кодировка URL заменяет небезопасные символы ASCII на «%», за которым следуют две шестнадцатеричные цифры.
  • URL не могут содержать пробелы. Кодировка URL обычно заменяет пробел знаком плюс (+) или% 20.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...