2012-02-15 18 views
10

¿Por qué se usa %2526 en lugar de %26 para codificar &?¿Qué es la codificación de la url% 2526?

Invocando una URL a un sitio externo y cuando codigo & como & los parámetros se pasan correctamente pero cuando solo uso %26 no lo son.

+0

Eso depende de cómo el sitio externo realiza la decodificación. 'encodeURIComponent (" & ")' me da '"% 26 "'. –

+2

¿Por qué el voto a favor? –

Respuesta

15

Si codifica url de un símbolo, obtiene %26. Si url-codifica %26 obtienes %2526. Por lo tanto, está codificado en URL dos veces.

5

%25 es el carácter de porcentaje, por lo que serán decodificados %2526 resultados en

%26 

cuales serán decodificados resultados en

& 

Por alguna razón, la llamada que haga parece requerir doblemente codificada por ciento de entrada. Sin saber más acerca de lo que estás haciendo, es imposible saber por qué, pero creo que todo está en orden.

+0

Solo me pregunto: ¿llevas estos códigos en la cabeza o lo ejecutaste a través de un decodificador? :) – Czechnology

+0

@Czechnology Los ejecuté a través de un decodificador. :) ¡No pude memorizar cosas como esta para salvar mi vida! –

1

Aparentemente se decodifica dos veces en el proceso, primero de %2526 a %26 y luego de %26 a &.
No debe insistir demasiado en el porqué; si esto funciona, solo úsalo así.

0

& está de hecho codificado como %26.

Se puede probar que la creación de un archivo HTML, abrirlo en un navegador, inputing símbolos que necesita para poner a prueba y mirando a la URL resultante en el navegador:

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

Si la URL se utiliza en la URL de retorno o valor de otra cadena de consulta, los caracteres Reservado y Excluido deben duplicarse codificados. & tiene codificación simple como% 26 y doble codificación como% 2526.

Cuestiones relacionadas