Codifica e Decodifica URL

Codifica e decodifica stringhe URL, gestendo in modo sicuro caratteri speciali e testo non ASCII, ideale per parametri di query e trasmissione di percorsi.

Codifica

Modalità di codifica

Decodifica

Istruzioni d'uso

La codifica URL converte caratteri speciali o caratteri non ASCII nella forma %XX per consentire una trasmissione sicura all'interno degli URL.
Utilizza "Codifica" per convertire il testo in una forma sicura per l'uso negli URL (ad esempio, parametri di query).
Utilizza "Decodifica" per ripristinare le sequenze %XX ai caratteri originali.
Casi comuni: gestione di parametri di query, trasmissione di dati modulo, chiamate API, ecc.

Esempi rapidi

Testo originale
https://example.com/search?q=你好世界&type=text
Codifica URL
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C&type=text

Funzionalità

  • Due modalità di codifica: encodeURIComponent e encodeURI
  • Gestione flessibile degli spazi: codificati come + o %20
  • Conversione in tempo reale con statistica della lunghezza input/output
  • Bottoni Copia/Azzera e invio bidirezionale al pannello opposto
  • Supporto completo per l'internazionalizzazione e temi multipli DaisyUI

Cos'è la codifica URL

L'URL encoding converte i caratteri in sequenze codificate con percentuale %XX per consentire la trasmissione sicura all'interno degli URL.

encodeURIComponent è adatto per singoli componenti (come valori di parametri di query) e codifica la maggior parte dei caratteri non alfanumerici.

encodeURI è adatto per stringhe URI complete e non codifica caratteri riservati con significato strutturale come ?, &, =, / .

Casi d'uso comuni

  • Costruzione di parametri di query (parole chiave di ricerca, criteri di filtraggio, ecc.)
  • Codifica e trasmissione dei dati dei moduli GET/POST
  • Codifica dei parametri delle richieste API
  • Inserire in modo sicuro l'input dell'utente nei segmenti del percorso URL

Domande frequenti e trappole

  • encodeURI vs encodeURIComponent: usa component per i singoli parametri, URI per l'intero link
  • Spazi e +: in application/x-www-form-urlencoded, il simbolo + viene spesso usato per rappresentare uno spazio nella stringa di query
  • Evita la decodifica ripetuta: più decodifiche possono corrompere i dati
  • Sequenze di percentuale non valide generano errori; gestisci in modo elegante le eccezioni

Come eseguire la codifica/decodifica URL nei linguaggi di programmazione

JavaScript
Codifica
// Component (recommended for query values)
const encoded = encodeURIComponent(text);
// If you need '+' for spaces in query strings
const encodedPlus = encoded.replace(/%20/g, '+');
// Full URI
const encodedUri = encodeURI(url);
Decodifica
// Treat '+' as space if needed
const input = plusAsSpace ? s.replace(/\+/g, ' ') : s;
// Component
const dec1 = decodeURIComponent(input);
// Fallback to decodeURI when input is a full URL
const dec2 = decodeURI(input);
PHP
Codifica
// Component (RFC 3986)
$encoded = rawurlencode($text);
// '+' for spaces (application/x-www-form-urlencoded)
$encodedPlus = str_replace('%20', '+', $encoded);
// Full query usage
$query = http_build_query(['q' => '你好 世界', 'type' => 'text']);
Decodifica
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Codifica
from urllib.parse import quote, quote_plus

# Component (RFC 3986)
enc = quote(text, safe='')
# '+' for spaces (application/x-www-form-urlencoded)
enc_plus = quote_plus(text)
Decodifica
from urllib.parse import unquote, unquote_plus

# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
Codifica
import (
    "net/url"
)

// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
Decodifica
import (
    "net/url"
)

// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Codifica
// Cargo.toml: urlencoding = "^2"
use urlencoding::{encode, encode_binary};

let enc = encode(text);              // component; spaces => %20
let enc_plus = enc.replace("%20", "+"); // if you need '+' for spaces
Decodifica
use urlencoding::decode;

// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Codifica
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// Query param / form style (spaces => '+')
String enc = URLEncoder.encode(text, StandardCharsets.UTF_8);
// For RFC3986-like component encoding, replace '+' with %20 if needed
String encSpace = enc.replace("+", "%20");
Decodifica
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);