2012-02-15 10 views
10

Perché è utilizzato %2526 anziché %26 per codificare uno &?Che cos'è la codifica url% 2526?

Sto invocando un URL a un sito esterno e quando codifico il & come %2526 i parametri vengono passati correttamente, ma quando io uso solo %26 non lo sono.

+0

Ciò dipende da come il sito esterno esegue la decodifica. 'encodeURIComponent (" & ")' mi dà '"% 26 "'. –

+2

Perché il downvote? –

risposta

15

Se si codifica url una e commerciale si ottiene %26. Se url-encode %26 ottieni %2526. Quindi, è url-encoded due volte.

5

%25 è il carattere per cento, in modo da %2526 URLDecoded risultati in

%26 

che URLDecoded risultati in

& 

Per qualche ragione, la chiamata si effettua sembra richiedere doppiamente cento codificati in ingresso. Senza sapere di più su quello che stai facendo, è impossibile sapere perché, ma immagino che tutto sia in ordine.

+0

Ti stai solo chiedendo - hai in testa questi codici o l'hai eseguito attraverso un decodificatore? :) – Czechnology

+0

@Czechnology Li ho fatti passare attraverso un decoder. :) Non ho potuto memorizzare cose del genere per salvarmi la vita! –

1

Apparentemente viene decodificato due volte nel processo, prima da %2526 a %26 e quindi da %26 a &.
Non dovresti soffermarti troppo a lungo sul perché; se funziona, basta usarlo in questo modo.

0

& è infatti codificato come %26.

È possibile verificare che la creazione di un file HTML, aprirlo in un browser, inputing simboli è necessario testare e guardando l'URL risultante in del browser:

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

Se l'URL viene utilizzato in URL di ritorno o valore di un'altra stringa di query, i caratteri riservati ed esclusi devono essere raddoppiati. & è codificato come% 26 e con codifica doppia come% 2526.