Codificare e decodificare URL
Codifichi testo per un URL o lo riporti in forma leggibile: hello world/café diventa hello%20world%2Fcaf%C3%A9, con gli spazi come %20 e ogni segno riservato codificato. La decodifica avviene una sola volta e rifiuta escape difettosi come %GG. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- hello world/café?x=1
- Modalità di calcolo
- Encode
- Risultato
- hello%20world%2Fcaf%C3%A9%3Fx%3D1
Questo strumento converte testo Unicode nella codifica percentuale RFC 3986 e ripristina testo leggibile da valori validi. Scelga la codifica quando un dato deve viaggiare come componente di URL, oppure la decodifica per leggere escape presenti in log, reindirizzamenti, query e collegamenti copiati. L’operazione è deterministica, non conserva stato e rifiuta sequenze malformate invece di produrre risultati fuorvianti.
Quando applicare la codifica percentuale
Gli URL riservano alcuni caratteri alla struttura: le barre separano i segmenti, il punto interrogativo apre la query, le e commerciali dividono i parametri, il segno uguale separa nomi e valori e il cancelletto introduce i frammenti. Se uno di questi caratteri appartiene al dato, non deve essere confuso con la struttura. La codifica converte l’input in UTF-8 e rappresenta ogni byte che non corrisponde a un carattere non riservato con un segno percentuale seguito da due cifre esadecimali.
Lettere, numeri, trattini, punti, trattini bassi e tilde restano leggibili. Gli spazi diventano <code>%20</code>, non un segno più, e la punteggiatura riservata viene protetta perché l’input è un valore, non un URL completo. Codifichi soltanto il componente da inserire; codificare un indirizzo già composto proteggerebbe anche i suoi separatori strutturali.
Come la decodifica rigorosa protegge i dati
La decodifica esamina l’intero input prima di restituire un valore. Ogni segno percentuale deve essere seguito esattamente da due cifre esadecimali, quindi <code>%</code>, <code>%2</code> e <code>%GG</code> causano un errore. I byte protetti devono poi formare UTF-8 valido.
Una sequenza apparentemente corretta può contenere testo corrotto; accettare caratteri sostitutivi nasconderebbe il danno in log, callback o dati importati. Lo strumento segnala quindi l’errore. Non trasforma il segno più in spazio: tale convenzione riguarda i moduli HTML, mentre qui vale RFC 3986.
Viene eseguito un solo passaggio: <code>%2520</code> diventa <code>%20</code>, non uno spazio. Un secondo passaggio deve essere richiesto esplicitamente, così la doppia decodifica non avviene per errore.
Come usare il risultato in sicurezza
Selezioni consapevolmente la modalità e invii la stringa esatta che rappresenta un singolo valore logico. Dopo la codifica non applichi un altro codificatore: il doppio passaggio trasforma ogni percentuale in <code>%25</code>. Dopo la decodifica tratti il testo come dato, non come markup affidabile, percorso o istruzione.
Il recupero dei caratteri non ne convalida il significato per la destinazione successiva. Questa distinzione conta per parametri di callback, log, collegamenti normalizzati e identificatori. L’algoritmo non usa rete, casualità, orologio o stato; input identici producono output identici.
Casi d'uso
Preparare un parametro di query
Codifichi il testo inserito affinché spazi, e commerciali, Unicode e punteggiatura riservata rimangano in un unico valore.
Esaminare log codificati
Decodifichi un percorso o parametro acquisito per leggerne il contenuto e individuare escape danneggiati.
Domande frequenti
Barre e punti interrogativi vengono conservati?
No. L’input è un singolo valore, quindi viene codificata anche la punteggiatura riservata.
Gli spazi diventano segni più?
No. RFC 3986 rappresenta lo spazio come %20; la conversione del segno più appartiene ai moduli HTML.
Cosa accade con un escape malformato?
La decodifica restituisce un errore per escape incompleti, non esadecimali o byte che non formano UTF-8 valido.
Lo strumento decodifica più volte?
No. Ogni richiesta esegue un solo passaggio per evitare doppie decodifiche nascoste; lo ripeta soltanto intenzionalmente.
Devo codificare l'intero URL o solo una parte?
Solo il valore che sta inserendo, come un termine di ricerca, un segmento del percorso o un indirizzo di reindirizzamento. Codificare un URL già composto trasforma anche barre, punti interrogativi ed e commerciali, e il link smette di funzionare.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/web/url-encode-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world/café?x=1","mode":"encode"}'const res = await fetch("https://api.kit.forhosting.com/web/url-encode-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello world/café?x=1",
"mode": "encode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/url-encode-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello world/café?x=1",
"mode": "encode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/url-encode-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello world/café?x=1","mode":"encode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello world/café?x=1","mode":"encode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/url-encode-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "hello world/café?x=1",
"mode": "encode"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.url_encode_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Può eseguirla nel browser oppure ottenere lo stesso comportamento tramite API al prezzo di $0.002 per elemento.
Come usare il risultato in sicurezza
Il browser è comodo per un controllo isolato, mentre l’API rende ripetibile la validazione in test e pipeline. Ogni elemento costa $0.002 tramite API.
Casi di integrazione
Verificare un’integrazione
Crei fixture stabili e controlli che callback, reindirizzamenti e pipeline decodifichino esattamente un livello RFC 3986.
Domande tecniche
Quanto costa una richiesta API?
Ogni elemento costa $0.002 tramite API. L’esecuzione interattiva è disponibile nella pagina.