передача специальных символов с помощью encodeURI в JavaScript
-
12-09-2019 - |
Вопрос
У меня есть поле ввода HTML, связанное с кнопкой с функцией onclick в javascript, которая может передавать значение текстового поля в текстовое поле другой страницы.Передавая значения с одной страницы на другую через URL-запрос JSP, я обнаружил, что кодирование значений с помощью encodeURI()
получает:
- £ --> £ (2 знака !!)
- ö --> ö (2 знака !!)
Когда я использую Javscript escape()
Я получаю правильные кодировки, но, к сожалению, знак + исчезнет.Есть ли лучшее решение для какой-то стабильной кодировки символов?
Решение
encodeURI()
кодирует с использованием кодировки UTF-8, поэтому вы видите два знака для кодирования одного символа (это нормально).
Если вы хотите использовать побег и при этом сохранить +
знак, вы можете использовать следующее:
function mod_escape(value) {
value = escape(value);
return value.replace(/\+/g, '%2B');
}
Другие советы
Я думаю, вам следует использовать encodeURIComponent() для каждой пары ключ=значение и decodeURIComponent на второй странице для каждой пары ключ=значение.