передача специальных символов с помощью encodeURI в JavaScript

StackOverflow https://stackoverflow.com/questions/1244932

  •  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 на второй странице для каждой пары ключ=значение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top