Кодирование URL — проблема с амперсандом

У меня возникли проблемы с кодировкой некоторых символов, вызывающих проблемы с формой поиска на моем веб-сайте. Одно из возможных значений поля содержит амперсанд. Когда это выбрано и выполняется поиск, амперсанд кодируется как: %2526

При использовании ссылок на страницы внизу страницы и переходе на вторую страницу в списке результатов амперсанд кодируется в: %26

Наконец... при попытке перейти на 3-ю страницу в списке амперсанд меняется обратно на: & Это ломает форму, поскольку предполагается, что есть переменная, которой на самом деле нет.

Почему меняется кодировка? Как я могу это исправить? Спасибо за вашу помощь!


person Vecta    schedule 10.08.2011    source источник


Ответы (3)


Похоже, что поле кодируется дважды. Первый проход приведет к & измененному на %26, затем urlencoding %26 приведет к %2526, так как кодировка для самого % равна %25.

person Andrew Lee    schedule 10.08.2011
comment
Эндрю, какие-либо предложения по поводу этого stackoverflow.com/q/58486114/2624806? - person CoDe; 21.10.2019

Если вы хотите использовать Andaman & Nicobar в веб-API.

Вы можете использовать вместо & вы можете использовать %26, и все будет записано, как показано ниже.

Андаманские+%26+Никобар

person Pankaj Lahoti    schedule 21.03.2018

Я предполагаю, что вы перемещаетесь по ссылкам, которые отображаются на вашей веб-странице.

Ответ заключается в том, как вы генерируете URL-адрес в теге href этой ссылки. Вы (скорее всего) не перекодируете амперсанд в URL-адресе, когда устанавливаете значение этого атрибута href.

person Wesley Long    schedule 10.08.2011