Come codificare e decodificare gli URL: una guida completa
Risposta rapida
La codifica URL converte i caratteri non sicuri in sequenze %XX dove XX è il valore esadecimale del byte. Gli spazi diventano %20 (o + nei dati del modulo), i caratteri cinesi diventano sequenze %XX multibyte. Utilizza il nostro URL Encoder e URL Decoder gratuiti: tutta l'elaborazione avviene localmente nel tuo browser.
Introduzione
La codifica URL, nota anche come codifica percentuale, è un meccanismo per codificare caratteri riservati e non sicuri in un URL in modo che URL possa essere trasmesso in modo sicuro su Internet. URLs può contenere solo un set limitato di caratteri ASCII; qualsiasi altro carattere (spazi, lettere non ASCII, simboli) deve essere codificato in percentuale come sequenza che inizia con % seguito da due cifre esadecimali che rappresentano il valore del byte.
Passo dopo passo
-
Identificare ciò che necessita di codifica
I caratteri che non si trovano nel set non riservato (A-Z, a-z, 0-9, -, ., _, ~) devono essere codificati in percentuale. Ciò include spazi, separatori di query come = e &, barre e tutti i caratteri non ASCII come cinese, arabo o emoji.
-
Codifica URL o la stringa di query
Incolla il tuo testo nello strumento Codificatore URL. Utilizza encodeURIComponent() per codificare ogni carattere riservato. Il risultato appare immediatamente nel campo di output.
-
Copia il risultato codificato
Fare clic sul pulsante Copia per copiare la stringa con codifica percentuale. Ora puoi incorporarlo in modo sicuro in un parametro di query URL, una richiesta API o un modulo di invio.
-
Decodifica un URL codificato
Incolla un URL codificato o una stringa di query nello strumento URL Decoder. Utilizza decodeURIComponent() per ripristinare i caratteri originali. Verifica che l'output decodificato corrisponda alle tue aspettative.
-
Verificare i casi limite
Controlla che gli spazi siano decodificati correttamente (%20 vs +), che le sequenze UTF-8 multibyte vengano decodificate con il carattere corretto e che le stringhe già codificate non siano doppiamente codificate.
Esempi
Codifica il testo con uno spazio
Ingresso: Hello World
Produzione: Hello%20World
Codificare un separatore di percorso
Ingresso: a/b
Produzione: a%2Fb
Codifica caratteri cinesi (UTF-8)
Ingresso: 你好
Produzione: %E4%BD%A0%E5%A5%BD
Decodificare un parametro di query codificato
Ingresso: key%3Dvalue%26foo%3Dbar
Produzione: key=value&foo=bar
Problemi comuni
- Doppia codifica: la codifica di una stringa già codificata trasforma %20 in %2520. Controlla sempre se l'input è già codificato prima di ricodificarlo.
- Confondere encodeURI con encodeURIComponent: encodeURI mantiene i caratteri riservati come /, ? e intatti per URLs completo, mentre encodeURIComponent codifica tutto per i valori dei parametri di query.
- Gestione dello spazio: %20 è il formato con codifica percentuale; + è valido solo nei dati del corpo application/x-www-form-urlencoded, non nel percorso URL o nella stringa di query secondo RFC 3986.
- Codifiche legacy non UTF-8: i browser moderni codificano come UTF-8, ma i sistemi legacy possono utilizzare GBK o Latin-1, causando mojibake quando decodificati dall'altra parte.
Suggerimenti
- Utilizza encodeURIComponent() per i singoli valori dei parametri di query e encodeURI() per l'intero URLs che è già ben formato.
- Quando crei stringhe di query, codifica il valore ma non i separatori = o &: codifica ciascun valore separatamente e poi uniscilo con &.
- Utilizza i nostri strumenti URL Encoder e Decoder per eseguire il debug delle chiamate API che restituiscono errori 400 a causa di stringhe di query in formato errato.
- Decodifica sempre sul lato server utilizzando la stessa codifica dei caratteri (UTF-8) per evitare mojibake.