передача специальных символов с encodeURI в javascript - PullRequest
1 голос
/ 07 августа 2009

У меня есть поле ввода HTML, связанное с кнопкой с функцией onclick в javascript, которая может передавать значение текстового поля в текстовое поле другой страницы. При передаче значений с одной страницы на другую через URL-запрос JSP я обнаружил, что при кодировании значений с помощью encodeURI() получается:

  • £ -> £ (2 знака !!)
  • ö -> ¶¶ (2 знака !!)

Когда я использую Javscript escape(), я получаю правильные кодировки, но, к сожалению, знак + исчезнет. Есть ли лучшее решение для стабильного кодирования символов?

Ответы [ 2 ]

0 голосов
/ 05 сентября 2009

Я думаю, вы должны использовать encodeURIComponent () для каждой отдельной пары ключ = значение и decodeURIComponent на второй странице для каждой пары ключ = значение.

0 голосов
/ 07 августа 2009

encodeURI() кодирует с использованием кодировки UTF-8, поэтому вы видите два знака для кодирования одного символа (это нормально).

Если вы хотите использовать escape и все еще держать знак +, вы можете использовать следующее:

function mod_escape(value) {
  value = escape(value);
  return value.replace(/\+/g, '%2B');
}
...