Почему %2526 используется вместо %26 для кодирования &
Я ссылаюсь на URL-адрес на внешний сайт, и когда я кодирую параметр & as %2526 параметры передаются правильно, но когда я просто использую %26 это не так.
Ответ 1
Если вы url-кодируете амперсанд, вы получаете %26. Если вы url-encode %26 вы получаете %2526. Таким образом, он дважды кодируется по URL-адресу.
Ответ 2
%25 - это процентный знак, поэтому %2526 URLDecoded приводит к
%26
который URLDecoded приводит к
&
По какой-то причине, вызов, который вы делаете, по-видимому, требует двоично-процентного кодированного ввода. Не зная больше о том, что вы делаете, невозможно понять, почему, но я думаю, все в порядке.
Ответ 3
По-видимому, он дважды декодируется в процессе, сначала от %2526 до %26 а затем от %26 до &. Вы не должны слишком долго останавливаться на том, почему; если это работает, просто используйте его так.
Ответ 4
& действительно кодируется как %26.
Вы можете протестировать его, создав HTML файл, открыв его в браузере, вводя символы, которые вам нужно проверить, и посмотрите на полученный URL-адрес в браузере:
Если URL-адрес используется в URL-адресе возврата или значении другой строки запроса, символы Reserved и Excluded должны быть закодированы в два раза. & однокодировано как% 26 и дважды закодировано как% 2526.