Кодировка URL для кодирования пробелов с плюсом

У меня есть приложение, которое должно подписать данные формы, прежде чем они будут отправлены на сервер. В методе подписи я должен экранировать все входные значения формы с помощью javascript, подписать их и затем отправить подписанные данные на сервер для перекрестного сопоставления. Удаленный сервер экранирует данные формы таким образом, что он кодирует все пробелы плюсом.

Так что, если мои данные формы:

this is test :)

Кодированный вывод должен быть

this+is+test+%3A)

Но я проверял javascript-коды encodeURIComponent, encodeURI и escape. Все они дают мне следующий вывод:

this%20is%20test%20%3A)

Есть идеи, какая функция подходит для этого?

1 ответ

Это довольно просто сделать замену самостоятельно:

var encoded = escape(s).replace(/%20/g, "+");
alert(encoded); // outputs "this+is+test+%3A)"
Другие вопросы по тегам