Vai al contenuto

Codificatore e decodificatore di URL

URL Encoder & Decoder

Codifica e decodifica in percentuale gli URL e i valori di query, distinguendo la modalità per componente da quella per URL intero.

Percent-codifica e decodifica gli URL, tenendo separate le quattro regole diverse che si chiamano tutte «codifica URL»: `encodeURIComponent`, `encodeURI`, l’RFC 3986 stretto e la codifica dei moduli, dove uno spazio diventa `+`. Sceglierne una sbagliata è quello che produce un link che funziona finché qualcuno non digita una `&`.

🔒 Funziona interamente nel tuo browserurlencodedecodepercent
Regole
Direzione
Ambito

Un valore di query, un segmento di percorso, un frammento. `encodeURIComponent`: applica l’escape a `/ ? : @ & = + $ , #` e lascia stare `A-Za-z0-9 - _ . ! ~ * ' ( )`.

Testo

Codificato

Ingresso

0 caratteri

Uscita

0 caratteri

Caratteri con escape

0

Come si usa

  1. Scegliere prima l’ambito

    Componente per un valore di query o un segmento di percorso: è il caso comune. URL intero solo per un URL che si ha già e si vuole soltanto sistemare; di proposito lascia in pace `?`, `&` e `/`.

  2. Incollare e leggere l’uscita

    I contatori sotto i pannelli dicono quanti caratteri sono stati codificati, che è un modo rapido di accorgersi di aver scelto un ambito che non ha fatto niente.

  3. Impostare la codifica dei byte quando si decodifica un URL vecchio

    Un link da un sito italiano di dieci anni fa percent-codificava byte Latin-1 (ISO-8859-1 o Windows-1252), non UTF-8, e decodificarlo come UTF-8 dà caratteri sballati dove c’era una lettera accentata. Il selettore in modalità decodifica ha EUC-KR, Shift_JIS, GB18030 e la famiglia Latin-1.

  4. Modificare la query a campi quando sono tanti

    L’interruttore «Modifica come query string» divide l’URL in righe nome/valore. I valori sono mostrati decodificati e riscritti codificati, così un URL intero annidato dentro un parametro `next=` sopravvive alla modifica.

Domande frequenti

Qual è la differenza fra Componente e URL intero?

Componente codifica i delimitatori — `/ ? : @ & = +` — perché un *valore* che li contiene farebbe altrimenti a pezzi l’URL. URL intero li lascia stare perché sono la struttura. Usare URL intero su un valore è il modo classico di costruire un link che si rompe appena il valore contiene una e commerciale.

Perché la mia firma non si verifica?

Probabilmente perché `encodeURIComponent` lascia in pace `! ' ( ) *` e l’RFC 3986 no. OAuth 1.0, AWS SigV4 e quasi tutti gli altri schemi di firma canonicalizzano con la regola stretta, quindi un valore che contiene un apostrofo produce un hash diverso. È a questo che serve l’ambito Stretto.

Che cosa vuol dire la nota «codificato due volte»?

Che decodificare di nuovo il risultato produce qualcosa di diverso: un `%2520` dove si voleva un `%20`. Di solito vuol dire che un valore è passato per un encoder nel client e di nuovo in un proxy o in un framework. Va decodificato due volte per riavere l’originale, e poi va sistemata la catena.

Perché uno spazio a volte è `+` e a volte `%20`?

`+` appartiene a `application/x-www-form-urlencoded`: i corpi dei POST di modulo e quello che produce `URLSearchParams`. Ovunque altro in un URL uno spazio è `%20`, e un `+` significa un segno più letterale. Mescolarli trasforma `a+b` in `a b`, o il contrario.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.