Как передать% в строке запроса URL?

Я пытаюсь передать строку через HTTP-запрос, который имеет один из символов как % в строке запроса URL.

url = url + "?q=" + str + "&block=" + block;  // str contains the '%' character

Но на странице ColdFusion, где я отправляю эту информацию, возвращается следующая ошибка:

Элемент Q undefined в URL.

Как я могу кодировать знак % в URL?

Ответ 1

Вы должны закодировать все значения, которые вы передаете, как параметры запроса, но URL-кодировка для% is %25

Обновить. Если вы создаете параметры запроса в javascript, вы, вероятно, захотите сделать:

url=url+"?q="+encodeURIComponent(str)+"&block="+encodeURIComponent(block)

(Обновлено с помощью очень полезного предложения ZeissS, чтобы использовать encodeURIComponent вместо escape. См. также http://xkr.us/articles/javascript/encode-compare/)

Ответ 2

Передайте свою строку через функцию encodeURI(...), чтобы избежать всех специальных символов не только%

Ответ 5

Мы можем использовать URLEncodedFormat() в ColdFusion, а также использовать приведенный ниже.

  • encodeURI (...)
  • encodeURIComponent

Это также помогает нам решить нашу проблему.