Codificatore URL Online

Codifica i caratteri speciali negli URL

Prova un esempio

Testo Normale / URL

Codificato

Esegue in locale · Sicuro per incollare segreti
Output codificato...
Modalità:

Cos'è la codifica URL?

La codifica URL (chiamata anche codifica percentuale) è un meccanismo per codificare informazioni in un Identificatore di Risorsa Uniforme (URI) in modo che nella stringa finale compaiano solo i caratteri consentiti da RFC 3986. Qualsiasi carattere che non sia un carattere non riservato (A–Z, a–z, 0–9, -, _, ., ~) viene sostituito da un segno percentuale seguito da due cifre esadecimali che rappresentano il valore del byte UTF-8 del carattere — per esempio, uno spazio diventa %20 e & diventa %26.

La codifica percentuale è necessaria perché gli URL possono contenere solo un insieme limitato di caratteri ASCII. Quando un URL include caratteri al di fuori di questo insieme — spazi, lettere Unicode, simboli come &, = o / usati come valori letterali anziché come delimitatori strutturali — questi caratteri devono essere codificati per evitare che il parser URL li interpreti erroneamente. Questo è particolarmente critico per i valori delle query string, dove & o = non codificati romperebbero la struttura dei parametri.

Perché usare questo strumento?

Guarda istantaneamente come il tuo testo viene codificato in entrambe le modalità, con un confronto affiancato in tempo reale — senza bisogno di scrivere codice per controllare i casi limite.

Anteprima in tempo reale
L'output si aggiorna mentre digiti. Prova diversi input e vedi istantaneamente quali caratteri vengono codificati e quali vengono preservati.
🔀
Due modalità
Passa tra encodeURIComponent (per i valori) e encodeURI (per URL completi) senza lasciare la pagina.
🔒
Solo lato client
Tutta la codifica viene eseguita localmente nel tuo browser. I parametri di query sensibili e i token non toccano mai un server.
📋
Copia con un clic
Copia l'output codificato negli appunti con un solo pulsante. Pronto per incollare direttamente nel tuo codice, terminale o barra degli indirizzi del browser.

Come usare questo codificatore URL online

Nessun account, nessuna installazione. Incolla o digita il tuo testo nel campo di input e il risultato codificato in percentuale appare all'istante. Tutto viene eseguito nel tuo browser — i tuoi dati non lasciano mai il tuo dispositivo.

  1. 1
    Incolla il tuo testo o URL
    Inserisci qualsiasi stringa — il valore di un parametro di query, un URL completo, un segmento di percorso o un payload JSON. Il codificatore lo elabora carattere per carattere secondo RFC 3986.
  2. 2
    Scegli la modalità di codifica
    Seleziona encodeURIComponent per codificare valori di parametri individuali (codifica tutto tranne i caratteri non riservati). Seleziona encodeURI per codificare un URL completo preservando i caratteri strutturali come ://?#&=.
  3. 3
    Copia l'output codificato
    La stringa codificata in percentuale appare all'istante. Clicca su Copia per prendere il risultato e incollarlo direttamente nella tua chiamata API, nell'azione del form o nel file di configurazione.
  4. 4
    Decodifica se necessario
    Hai fatto un errore o vuoi verificare il risultato? Passa allo strumento Decodificatore URL con un clic per invertire la codifica.

Quali caratteri vengono codificati?

RFC 3986 divide i caratteri URL in due categorie: caratteri non riservati (mai codificati) e caratteri riservati (hanno un significato speciale — codificati o preservati a seconda del contesto). La tabella mostra come le due funzioni JavaScript trattano i caratteri chiave:

Car.Significato nell'URLencodeURIComponentencodeURI
Spaceword separator%20%20
+plus sign%2B%2B
/path separator%2F/ (kept)
?query start%3F? (kept)
#fragment%23# (kept)
&param separator%26& (kept)
=param value%3D= (kept)
@auth separator%40@ (kept)
:scheme / port%3A: (kept)
%percent literal%25%25
~unreserved~ (kept)~ (kept)
-_.~unreserved setkept as-iskept as-is

encodeURIComponent vs encodeURI

JavaScript fornisce due funzioni di codifica con comportamenti molto diversi. Scegliere quella sbagliata è uno dei bug più comuni nella gestione degli URL:

encodeURIComponent()
Codifica tutto tranne il set di caratteri non riservati (A–Z a–z 0–9 - _ . ~). È la scelta giusta per codificare valori individuali di parametri di query, segmenti di percorso o qualsiasi valore che verrà incorporato all'interno di un URL. Codificherà /, ?, # e & e tutti gli altri caratteri riservati.
encodeURI()
Preserva l'intera struttura dell'URL lasciando i caratteri riservati (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) non codificati. Usala solo quando hai un URL completo con una struttura che vuoi preservare, e hai solo bisogno di codificare i caratteri non ASCII o illegali al suo interno.

Casi d'uso comuni

Parametri della query string
Codifica i valori dei parametri prima di aggiungerli a un URL: name=John%20Doe invece di name=John Doe. Gli spazi e i caratteri speciali non codificati romperanno i parser URL e produrranno risultati imprevisti.
Costruzione di richieste API
Le API REST richiedono parametri di query correttamente codificati. Codificare i valori con encodeURIComponent previene l'iniezione di parametri extra tramite caratteri come & e = incorporati nei valori.
Invio di dati da modulo
I moduli HTML inviano dati come application/x-www-form-urlencoded per impostazione predefinita. Comprendere la codifica percentuale aiuta a fare il debug di ciò che il browser invia e ciò che il server riceve.
Segmenti di percorso con caratteri speciali
Nomi di file o identificatori che contengono spazi, barre o caratteri unicode devono essere codificati percentualmente quando usati come segmenti di percorso URL: /files/my%20document.pdf.
OAuth e token di autenticazione
OAuth 1.0a e alcuni protocolli di autenticazione richiedono che la stringa base sia costruita da nomi e valori di parametri codificati percentualmente seguendo un rigido algoritmo di normalizzazione.
Deep link e URL condivisibili
Quando si generano URL condivisibili che incorporano contenuto utente (query di ricerca, stato dei filtri, coordinate), codifica tutti i valori dinamici per prevenire link rotti e XSS tramite manipolazione URL.

Esempi di codice

Come codificare stringhe URL nei linguaggi e ambienti più diffusi:

JavaScript (browser / Node.js)
// Encode a query parameter value (most common case)
encodeURIComponent('hello world & more') // → "hello%20world%20%26%20more"

// Encode a complete URL (preserves ://?#& structure)
encodeURI('https://example.com/path?q=hello world') // → "https://example.com/path?q=hello%20world"

// Build a query string safely
const params = new URLSearchParams({ q: 'hello world', lang: 'en' })
const url = `https://example.com/search?${params}` // uses + for spaces
Python
from urllib.parse import quote, urlencode, quote_plus

# Encode a path segment or query value
quote('hello world & more')          # → 'hello%20world%20%26%20more'

# Encode for application/x-www-form-urlencoded (space → +)
quote_plus('hello world')            # → 'hello+world'

# Build a query string
urlencode({'q': 'hello world', 'lang': 'en'})  # → 'q=hello+world&lang=en'
Node.js (URL API)
const url = new URL('https://example.com/search')
url.searchParams.set('q', 'hello world & more')
url.searchParams.set('lang', 'en')
console.log(url.toString())
// → https://example.com/search?q=hello+world+%26+more&lang=en
CLI (curl / bash)
# curl automatically percent-encodes --data fields
curl -G "https://example.com/search" --data-urlencode "q=hello world & more"

# Manual encoding with Python one-liner
python3 -c "from urllib.parse import quote; print(quote('hello world'))"

Codificatore URL vs. alternative

Diversi strumenti possono codificare testo in percentuale, ma differiscono per controllo, privacy e contesto.

Questo strumento
Basato su browser, istantaneo, privato. Supporta le modalità encodeURIComponent e encodeURI. Nessun dato inviato ad alcun server. Gestisce input Unicode completo.
Barra degli indirizzi del browser
I browser codificano automaticamente gli URL quando li incolli, ma solo parzialmente — conservano molti caratteri speciali per la leggibilità. Non adatto per codificare valori di parametri.
URLSearchParams / urllib
L'approccio programmatico corretto per costruire URL in JavaScript o Python. Usa questo strumento per una codifica rapida o per verificare cosa produrrà il tuo codice.

Domande frequenti

Qual è la differenza tra %20 e + per gli spazi?
Entrambi rappresentano uno spazio, ma in contesti diversi. %20 è la rappresentazione standard di uno spazio codificato percentualmente ed è valida ovunque in un URL. Il segno + rappresenta uno spazio solo nel formato application/x-www-form-urlencoded (invii di moduli HTML). In un percorso URL o in un valore di query grezzo, + è un segno più letterale, non uno spazio. Usa %20 per la massima compatibilità.
Quando usare encodeURIComponent vs encodeURI?
Usa encodeURIComponent per valori individuali (parametri di query, segmenti di percorso, frammenti hash). Usa encodeURI solo quando hai un URL completo e vuoi preservarne la struttura. Un errore comune è usare encodeURI su un valore di query — lascerà & e = non codificati, rompendo la query string.
La codifica URL gestisce i caratteri Unicode?
Sì. I caratteri non ASCII vengono prima convertiti nella loro rappresentazione di byte UTF-8, poi ogni byte viene codificato percentualmente. Per esempio, il segno euro (U+20AC) si codifica come %E2%82%AC — i suoi tre byte UTF-8. Sia encodeURIComponent che encodeURI gestiscono questo correttamente in tutti i browser moderni.
La doppia codifica è un problema?
Sì. Se codifichi una stringa già codificata, %20 diventa %2520 (il % stesso viene codificato come %25). Codifica sempre valori grezzi, non quelli già codificati. In caso di dubbio, decodifica prima, poi ricodifica.
Quali caratteri sono sempre sicuri negli URL?
I caratteri non riservati definiti da RFC 3986 sono sempre sicuri e non necessitano mai di codifica: maiuscole A–Z, minuscole a–z, cifre 0–9, trattino (-), underscore (_), punto (.) e tilde (~). Tutto il resto dovrebbe essere codificato percentualmente quando usato come valore anziché come delimitatore strutturale.
Perché alcuni URL contengono hex maiuscolo (%2F) e altri minuscolo (%2f)?
Entrambi sono validi. RFC 3986 specifica che le sequenze codificate percentualmente sono case-insensitive, quindi %2F e %2f sono equivalenti. Tuttavia, lo stesso RFC raccomanda di usare cifre esadecimali maiuscole per coerenza. La maggior parte dei browser e delle librerie produce maiuscole.
Questo strumento codifica l'URL completo o solo i parametri?
Entrambi. Usa la modalità encodeURIComponent per codificare singoli valori di parametri di query (il caso d'uso più comune). Usa la modalità encodeURI per codificare un URL completo preservando i caratteri strutturali come ://, ?, # e &.
C'è un limite di lunghezza per la codifica?
Nessun limite lato server — lo strumento viene eseguito interamente nel tuo browser. I limiti pratici dipendono dalla memoria del tuo browser. Per input molto grandi o elaborazione batch, usa encodeURIComponent in uno script.