Codifica / Decodifica URL
NovitàCodifica o decodifica testo in percent-encoding e analizza le query string, tutto nel tuo browser.
Special characters reference
| Character | Encoded (%XX) | Notes |
|---|---|---|
| space | %20 | Also encoded as + in HTML form query strings |
| & | %26 | Query param separator — encode in values |
| = | %3D | Key-value separator in query strings |
| ? | %3F | Marks the start of a query string |
| # | %23 | Fragment identifier |
| / | %2F | Path separator |
| : | %3A | Protocol / port separator |
| @ | %40 | Username delimiter in URLs |
| + | %2B | Literal plus sign (+ in query string = space) |
| % | %25 | Percent itself — encode to avoid ambiguity |
| € | %E2%82%AC | UTF-8 multi-byte (3 bytes) |
| © | %C2%A9 | UTF-8 multi-byte (2 bytes) |
Per-language code snippets
Copy-ready snippets for JavaScript, Python, C#, PowerShell, Java and Go.
// Encode a single query value (recommended)
const encoded = encodeURIComponent('hello world & co.');
// → 'hello%20world%20%26%20co.'
// Decode
const decoded = decodeURIComponent('hello%20world%20%26%20co.');
// → 'hello world & co.'
// Encode a full URL (leaves : / ? & # intact)
const safeUrl = encodeURI('https://example.com/search?q=hello world');
// → 'https://example.com/search?q=hello%20world' from urllib.parse import quote, unquote, urlencode
# Encode a single value (%20 for spaces)
encoded = quote('hello world & co.')
# → 'hello%20world%20%26%20co.'
# Decode
decoded = unquote('hello%20world%20%26%20co.')
# → 'hello world & co.'
# Encode a query dict (uses + for spaces — form encoding)
qs = urlencode({'q': 'hello world', 'page': '2'})
# → 'q=hello+world&page=2'
# quote_plus encodes spaces as + (match HTML form encoding)
plus = quote_plus('hello world')
# → 'hello+world' // Encode a single value (spaces → %20)
string encoded = Uri.EscapeDataString("hello world & co.");
// → "hello%20world%20%26%20co."
// Decode
string decoded = Uri.UnescapeDataString("hello%20world%20%26%20co.");
// → "hello world & co."
// Older System.Web API (spaces → +, form encoding):
// HttpUtility.UrlEncode("hello world") → "hello+world" # .NET method — works in PS 5+ and PowerShell Core
$encoded = [Uri]::EscapeDataString('hello world & co.')
# → 'hello%20world%20%26%20co.'
$decoded = [Uri]::UnescapeDataString('hello%20world%20%26%20co.')
# → 'hello world & co.'
# Alternate via System.Web (Desktop PS only):
Add-Type -AssemblyName System.Web
$enc2 = [System.Web.HttpUtility]::UrlEncode('hello world')
# → 'hello+world' import java.net.URLEncoder;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
// Encode (URLEncoder uses + for spaces — form encoding)
String encoded = URLEncoder.encode("hello world & co.", StandardCharsets.UTF_8);
// → "hello+world+%26+co."
// Decode
String decoded = URLDecoder.decode("hello+world+%26+co.", StandardCharsets.UTF_8);
// → "hello world & co." import "net/url"
// QueryEscape: spaces become +
encoded := url.QueryEscape("hello world & co.")
// → "hello+world+%26+co."
decoded, err := url.QueryUnescape("hello+world+%26+co.")
// → "hello world & co.", nil
// PathEscape: spaces become %20
pathSafe := url.PathEscape("hello world & co.")
// → "hello%20world%20&%20co." Runs entirely in your browser. Nothing is uploaded.
Codificatore e decodificatore URL gratuito online
Questo codificatore e decodificatore URL converte testo in formato percent-encoded — o inverte il processo — direttamente nel tuo browser. Incolla il testo, scegli Codifica o Decodifica, seleziona le regole Componente o URI completo, e il risultato si aggiorna in tempo reale. Nulla viene caricato; ogni operazione viene eseguita interamente nel tuo browser usando le stesse funzioni JavaScript integrate che usa il tuo codice.
Il percent-encoding è inevitabile nello sviluppo web. Spazi, e commerciali, segni di uguale e caratteri non ASCII devono essere tutti codificati prima di poter esistere in sicurezza in un URL. Che tu stia costruendo una richiesta API, debugging un link di tracciamento o leggendo un log del server, questo strumento gestisce tutti i casi limite — inclusi caratteri UTF-8 multibyte, sequenze malformate e l'ambiguità dello spazio tra + e %20.
encodeURIComponent vs encodeURI — quale regola usare?
encodeURIComponent è la scelta giusta per valori di query individuali, segmenti di percorso o qualsiasi stringa che stai inserendo in un URL. Codifica quasi tutti i caratteri speciali — inclusi ?, &, =, /, # e : — in modo che il valore non possa rompere la struttura dell'URL. Esempio: 'hello world & page=2' diventa 'hello%20world%20%26%20page%3D2'.
encodeURI è progettato per codificare un URL completo senza romperlo. Lascia intatti i caratteri strutturali (: / ? # &) in modo che l'URL continui a funzionare, codificando comunque spazi e caratteri non ASCII. In caso di dubbio, preferisci le regole Componente per qualsiasi cosa inserisci come valore — è il default sicuro in quasi ogni framework web.
Spazi come %20 vs + — la distinzione della codifica dei moduli
Esistono due modi validi per codificare uno spazio in un URL. Nei percorsi URL (la parte prima di ?), RFC 3986 richiede %20. Nelle stringhe di query dei moduli HTML, il vecchio formato application/x-www-form-urlencoded codifica gli spazi come + per compattezza storica — ed è ancora ciò che i browser inviano quando si invia un modulo tramite GET.
Entrambi significano 'spazio', ma solo nel proprio contesto. Un + in un percorso URL è un segno più letterale; un + in una stringa di query è uno spazio. Un segno più letterale in un valore di query deve essere codificato come %2B altrimenti verrà letto erroneamente. Il toggle + come spazio della modalità decodifica gestisce l'input codificato nel modulo sostituendo + con uno spazio prima di eseguire decodeURIComponent.
Confronto con CyberChef e altri strumenti di codifica URL
CyberChef (di GCHQ) è potente ma progettato attorno al concetto di pipeline 'ricette' — si concatenano più operazioni. Per la pura codifica o decodifica URL, bisogna comunque cercare l'operazione, trascinarla nella ricetta e poi elaborare l'input. È eccellente per trasformazioni complesse; è più lento del necessario per una codifica/decodifica rapida.
Altri strumenti online come urldecoder.org sono semplici ma mostrano annunci, richiedono ricarichi completi della pagina ad ogni operazione e non offrono snippet di codice per singolo linguaggio. Questo strumento aggiorna il risultato istantaneamente ad ogni pressione di tasto, gestisce le regole Componente e URI completo, include una tabella di riferimento dei caratteri codificati comuni e mostra codice pronto da copiare in JavaScript, Python, C#, PowerShell, Java e Go.
Riferimento rapido caratteri speciali
I caratteri più comunemente codificati nello sviluppo web: spazio → %20 (o + nelle stringhe di query), & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. I caratteri UTF-8 multibyte si espandono in più sequenze: € → %E2%82%AC, é → %C3%A9.
I caratteri che non vengono mai codificati sono il set non riservato: lettere A–Z e a–z, cifre 0–9 e i quattro simboli - _ . ~. Tutto il resto — incluso ogni carattere non ASCII — deve essere percent-encoded in un URL conforme agli standard.
Codifica URL in JavaScript, Python, C#, PowerShell e Java
Ogni linguaggio principale ha una funzione integrata per questo. In JavaScript / Node.js: encodeURIComponent(str) e decodeURIComponent(str) — nessun import necessario. In Python: urllib.parse.quote(str) e unquote(str); urlencode(dict) per una stringa di query completa. In C#: Uri.EscapeDataString(str) e Uri.UnescapeDataString(str) dal namespace System. In PowerShell: [Uri]::EscapeDataString(str), disponibile in PS 5+ e PowerShell Core. In Java: URLEncoder.encode(str, StandardCharsets.UTF_8).
Il pannello degli snippet per linguaggio include codice pronto da copiare in JavaScript, Python, C#, PowerShell, Java e Go così puoi aggiungere la chiamata giusta al tuo progetto immediatamente — con note sul comportamento dello spazio + vs %20 per la libreria standard di ciascun linguaggio.
100% privato — funziona anche offline
Ogni operazione di codifica e decodifica utilizza solo le funzioni integrate del tuo browser: encodeURIComponent, decodeURIComponent, encodeURI e decodeURI. Nessun testo viene mai inviato a un server, memorizzato o registrato — nemmeno i nomi di dominio negli URL che incolli. Una volta caricata la pagina, porta il dispositivo offline e continua a funzionare perfettamente. Aggiungi ai preferiti e usalo ogni volta che hai bisogno di codificare, decodificare o ispezionare un URL.
Frequently asked questions
Che cos'è la codifica URL?
La codifica URL (detta anche percent-encoding) converte i caratteri non sicuri in un URL in un segno % seguito da due cifre esadecimali. Ad esempio, uno spazio diventa %20, una e commerciale diventa %26 e un cancelletto diventa %23. Garantisce che ogni URL sia valido in qualsiasi browser, intestazione HTTP o server, indipendentemente dal set di caratteri.
Cosa significa %20 nella codifica URL?
%20 è la rappresentazione percent-encoded di un carattere spazio. Il 20 è il valore esadecimale di ASCII 32 (lo spazio). Quindi l'URL 'hello%20world' si decodifica in 'hello world'. Nelle stringhe di query dei moduli HTML a volte si vede + invece di %20 per gli spazi — entrambi significano la stessa cosa nelle stringhe di query ma non nei percorsi URL.
Qual è la differenza tra encodeURI e encodeURIComponent?
encodeURIComponent è per valori di query individuali o segmenti di percorso — codifica quasi tutto inclusi : / ? # & = affinché il valore non possa rompere la struttura dell'URL. encodeURI è per un URL completo — lascia intatti i caratteri strutturali come : / ? & # in modo che l'URL continui a funzionare. Come regola, usa sempre encodeURIComponent per i valori individuali che inserisci in un link.
Come si codifica un URL in JavaScript?
Usa encodeURIComponent() per valori individuali: encodeURIComponent('hello world & co.') restituisce 'hello%20world%20%26%20co.'. Per invertire usa decodeURIComponent(). Per un URL completo usa encodeURI() / decodeURI() — saltano i caratteri strutturali. Entrambe sono integrate in ogni browser e Node.js senza import necessari.
Perché uno spazio è a volte %20 e a volte +?
Nei percorsi URL (prima del ?) gli spazi devono essere %20 secondo RFC 3986. Nelle stringhe di query, il vecchio formato application/x-www-form-urlencoded usato dai moduli HTML codifica gli spazi come + per brevità storica. Entrambi significano 'spazio' ma solo nel proprio contesto — un + letterale in un valore di query deve essere codificato come %2B altrimenti verrà interpretato erroneamente come spazio.
È sicuro codificare/decodificare online?
Sì — questo strumento è 100% locale. Ogni operazione viene eseguita nel tuo browser usando funzioni JavaScript integrate. Il tuo testo non viene mai inviato a nessun server, memorizzato o registrato. Puoi anche andare offline dopo aver caricato la pagina e continuerà a funzionare. Questo è particolarmente importante quando si codificano chiavi API, credenziali o token.
Come si codifica un URL in Python?
Usa urllib.parse.quote() per un singolo valore: from urllib.parse import quote; quote('hello world & co.') → 'hello%20world%20%26%20co.'. Per decodificare: unquote('hello%20world%20%26%20co.'). Per un dizionario di stringa di query completo: urlencode({'q': 'hello world', 'page': '2'}) → 'q=hello+world&page=2'. quote_plus() usa + per gli spazi per corrispondere alla codifica dei moduli HTML.
Related tools
Vedi tutti gli strumentiGeneratore di espressioni Cron
Spiega una pianificazione Cron in parole semplici e visualizza le prossime esecuzioni.
Minificatore HTML
Comprimi l’HTML rimuovendo i commenti e gli spazi superflui.
Minificatore CSS
Riduci il CSS eliminando commenti e spazi non necessari.
Escape / Unescape JSON
Esegui l’escape di testo grezzo in una stringa compatibile con JSON e l’unescape inverso.
Codici di stato HTTP
Riferimento ricercabile dei codici di stato HTTP con significati in parole semplici.
Cheatsheet delle Regex
Riferimento ricercabile dei token e dei flag delle espressioni regolari.