Cos'è la codifica percentuale?+−
La codifica percentuale (detta anche codifica URL) sostituisce un carattere con % seguito dal suo valore esadecimale a due cifre, ripetuto per ogni byte della sua rappresentazione UTF-8. È così che un URL può trasportare uno spazio (%20), una e commerciale (%26) o un'emoji senza che questi caratteri vengano confusi con la sintassi dell'URL stesso.
Qual è la differenza tra encodeURIComponent ed encodeURI?+−
encodeURIComponent esegue l'escape di tutto tranne un piccolo insieme di caratteri non riservati, il che lo rende la scelta giusta per un singolo valore - un parametro di query o un segmento di percorso - perché esegue l'escape anche di caratteri come & e = che altrimenti verrebbero letti come struttura dell'URL. encodeURI è pensato per un intero URL: lascia intatti i caratteri strutturali come :, /, ?, & e # affinché l'URL continui a funzionare, ed esegue l'escape solo dei caratteri che un URL non può davvero contenere, come gli spazi. Passare un intero URL attraverso encodeURIComponent lo rompe, poiché farebbe l'escape anche delle barre e dei due punti.
Dovrei ancora usare escape() e unescape()?+−
No. Entrambe sono state deprecate già nella prima edizione dello standard JavaScript che ha introdotto anche encodeURIComponent, perché escape() non codifica i caratteri non ASCII come si aspettano HTTP e gli URL moderni - usa per tutto ciò che è fuori da Latin-1 una forma non standard %uXXXX che decodeURIComponent non può rileggere. Questo strumento mantiene l'opzione solo per permetterti di ispezionare ciò che un sistema legacy ha prodotto.
Perché un + in una query string diventa uno spazio?+−
Le query string derivano storicamente dagli invii di form HTML, che usano il formato application/x-www-form-urlencoded: codifica uno spazio reale come + invece che come %20, ed entrambi vengono trattati come spazio dall'analizzatore di questo strumento (e da URLSearchParams di JavaScript) in fase di decodifica. Se un valore ha davvero bisogno di un segno più letterale, deve a sua volta essere codificato in percentuale come %2B.
Cosa succede con un parametro ripetuto come ?tag=a&tag=b?+−
Nulla va perso - questo strumento conserva ogni occorrenza, in ordine, come propria riga nella tabella dei parametri di query, esattamente come la maggior parte dei framework server raccoglie una chiave ripetuta in una lista. Modificare o rimuovere una riga lascia le altre intatte.
Perché l'analizzatore ha ipotizzato https:// per il mio URL?+−
Una stringa come example.com/percorso non ha un protocollo, quindi né un browser né questo strumento possono sapere se si tratta di un indirizzo web, di un altro protocollo o di semplice testo. Invece di rifiutarla, l'analizzatore ipotizza https:// così puoi comunque ispezionarla e modificarla - un suggerimento appare ogni volta che ciò accade, e puoi correggere il campo Protocollo se era previsto uno schema diverso.