2012-02-15 3 views
10

Почему используется %2526 вместо %26 для кодировки &?Что такое кодировка URL% 2526?

Я вызываю URL-адрес на внешний сайт, и когда я кодирую & как %2526, параметры передаются правильно, но когда я просто использую %26, это не так.

+0

Это зависит от того, как внешний сайт выполняет декодирование. 'encodeURIComponent (" & ")' дает мне '"% 26 "'. –

+2

Почему downvote? –

ответ

15

Если вы кодируете URL-адрес амперсанда, вы получаете %26. Если вы указали URL-адрес %26, вы получаете %2526. Таким образом, он дважды кодируется по URL-адресу.

5

%25 это символ процента, так %2526 URLDecoded результатов в

%26 

которого URLDecoded результатов в

& 

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

+0

Просто интересно - вы несете эти коды в своей голове, или вы запустили его через декодер? :) – Czechnology

+0

@Czechnology Я провел их через декодер. :) Я не мог запомнить такие вещи, чтобы спасти мою жизнь! –

1

Видимо он получает декодируется дважды в процессе, сначала от %2526 до %26, а затем из %26 к &.
Вы не должны слишком долго останавливаться на причинах; если это работает, просто используйте его так.

0

& действительно кодируется как %26.

Вы можете проверить это, создав файл HTML, открыть его в браузере, inputing символы, которые Вы должны проверить и, глядя на полученный URL в браузере:

<form> 
<input type='text' name='qwe'> 
<input type='submit'> 
</form> 
0

Если URL используется в обратном URL или значение другой строки запроса, Зарезервированные и Исключенные символы должны быть закорочены в два раза. & является одним кодированным как% 26 и дважды кодируется как% 2526.

Смежные вопросы