Ответ 1
Если вы url-кодируете амперсанд, вы получаете %26
. Если вы url-encode %26
вы получаете %2526
. Таким образом, он дважды кодируется по URL-адресу.
Почему %2526
используется вместо %26
для кодирования &
Я ссылаюсь на URL-адрес на внешний сайт, и когда я кодирую параметр &
as %2526
параметры передаются правильно, но когда я просто использую %26
это не так.
Если вы url-кодируете амперсанд, вы получаете %26
. Если вы url-encode %26
вы получаете %2526
. Таким образом, он дважды кодируется по URL-адресу.
%25
- это процентный знак, поэтому %2526
URLDecoded приводит к
%26
который URLDecoded приводит к
&
По какой-то причине, вызов, который вы делаете, по-видимому, требует двоично-процентного кодированного ввода. Не зная больше о том, что вы делаете, невозможно понять, почему, но я думаю, все в порядке.
По-видимому, он дважды декодируется в процессе, сначала от %2526
до %26
а затем от %26
до &
.
Вы не должны слишком долго останавливаться на том, почему; если это работает, просто используйте его так.
&
действительно кодируется как %26
.
Вы можете протестировать его, создав HTML файл, открыв его в браузере, вводя символы, которые вам нужно проверить, и посмотрите на полученный URL-адрес в браузере:
<form>
<input type='text' name='qwe'>
<input type='submit'>
</form>
Если URL-адрес используется в URL-адресе возврата или значении другой строки запроса, символы Reserved и Excluded должны быть закодированы в два раза. & однокодировано как% 26 и дважды закодировано как% 2526.